Comment copier du texte sans perdre la sélection?

11

Lorsque je copie du texte sélectionné ( kill-ring-saveavec M-w), je perds automatiquement ma sélection. J'ai essayé avec Transient Mark Mode sans succès. (Notez que je n'utilise pas le mode CUA.)

NVaughan
la source
J'ai d'abord pensé qu'il s'agissait de la sélection X (auquel cas la variable select-active-regionsserait pertinente), mais il semble s'agir de mettre en évidence la région.
YoungFrog

Réponses:

11

La meilleure solution consiste C-x C-xà réactiver la marque. Mais si vous voulez vraiment garder la sélection, vous pouvez utiliser:

(defun copy-keep-highlight (beg end)
  (interactive "r")
  (prog1 (kill-ring-save beg end)
    (setq deactivate-mark nil)))
djangoliv
la source
1
Je suggère d'utiliser un conseil comme celui-ci:(defun yf/no-deactivate-mark (&rest _) (setq deactivate-mark nil)) (advice-addadvice-add 'kill-ring-save :after #'yf/no-deactivate-mark)
YoungFrog
@djangoliv, merci. Qu'est-ce que c'est prog1?
NVaughan
@YoungFrog, merci, mais votre code ne fonctionne pas car il contient une erreur de syntaxe quelque part.
NVaughan
2
Ah, erreur de copier-coller: advice-addne devrait être là qu'une seule fois. Je ne peux pas modifier le commentaire.
YoungFrog
1
@NVaughan ici une bonne explication: emacs.stackexchange.com/questions/5829/…
djangoliv