Come copiare il testo senza perdere la selezione?


11

Quando copio del testo selezionato ( kill-ring-savecon M-w), perdo automaticamente la selezione. Ho provato con Transient Mark Mode senza fortuna. (Si noti che sto non utilizzando la modalità CUA).


Inizialmente pensavo si trattasse della selezione X (nel qual caso la variabile select-active-regionssarebbe rilevante), ma sembra riguardare l'evidenziazione della regione.
YoungFrog,

Risposte:


11

La migliore soluzione sta usando C-x C-xper riattivare il marchio. Ma se vuoi davvero mantenere la selezione puoi usare:

(defun copy-keep-highlight (beg end)
  (interactive "r")
  (prog1 (kill-ring-save beg end)
    (setq deactivate-mark nil)))

1
Suggerirei di usare un consiglio come questo:(defun yf/no-deactivate-mark (&rest _) (setq deactivate-mark nil)) (advice-addadvice-add 'kill-ring-save :after #'yf/no-deactivate-mark)
YoungFrog,

@djangoliv, grazie. Che cos'è questo prog1?
NVaughan,

@YoungFrog, grazie, ma il tuo codice non funziona perché ha un errore di sintassi da qualche parte.
NVaughan,

2
Ah, copia incolla errore: advice-adddovrebbe essere lì solo una volta. Non riesco a modificare il commento.
YoungFrog,

1
@NVaughan ecco una buona spiegazione: emacs.stackexchange.com/questions/5829/…
djangoliv
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.