Bagaimana cara menyalin teks tanpa kehilangan pilihan?

11

Ketika saya menyalin beberapa teks yang dipilih ( kill-ring-savedengan M-w), saya secara otomatis kehilangan pilihan saya. Saya sudah mencoba dengan Mode Mark Transient tanpa hasil. (Perhatikan bahwa saya tidak menggunakan Mode CUA.)

NVaughan
sumber
Awalnya saya pikir ini tentang pemilihan X (dalam hal ini variabel select-active-regionsakan relevan), tetapi tampaknya tentang menyoroti wilayah.
YoungFrog

Jawaban:

11

Solusi terbaik adalah menggunakan C-x C-xuntuk mengaktifkan kembali tanda. Tetapi jika Anda ingin benar-benar mempertahankan pilihan, Anda dapat menggunakan:

(defun copy-keep-highlight (beg end)
  (interactive "r")
  (prog1 (kill-ring-save beg end)
    (setq deactivate-mark nil)))
Djangoliv
sumber
1
Saya sarankan menggunakan nasihat seperti ini:(defun yf/no-deactivate-mark (&rest _) (setq deactivate-mark nil)) (advice-addadvice-add 'kill-ring-save :after #'yf/no-deactivate-mark)
YoungFrog
@ Djangoliv, terima kasih. Apa ini prog1?
NVaughan
@YoungFrog, terima kasih, tetapi kode Anda tidak berfungsi karena ada kesalahan sintaksis di suatu tempat.
NVaughan
2
Ah, salin kesalahan tempel: advice-addseharusnya hanya ada sekali. Saya tidak dapat mengedit komentar.
YoungFrog
1
@NVaughan di sini penjelasan yang bagus: emacs.stackexchange.com/questions/5829/…
djangoliv