如何在不丢失选择的情况下复制文本?


11

复制某些选定的文本(kill-ring-save带有M-w)时,我会自动丢失选择。我已经尝试过瞬态标记模式,但是没有运气。(请注意,我没有使用CUA模式。)


我最初以为这与X选择有关(在这种情况下,变量select-active-regions将是相关的),但似乎与突出显示区域有关。
YoungFrog

Answers:


11

最好的解决方案是使用C-x C-x重新激活标记。但是,如果您想真正保留选择,可以使用:

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

1
我建议使用这样的建议:(defun yf/no-deactivate-mark (&rest _) (setq deactivate-mark nil)) (advice-addadvice-add 'kill-ring-save :after #'yf/no-deactivate-mark)
YoungFrog '16

@djangoliv,谢谢。这是prog1什么
NVaughan '16

@YoungFrog,谢谢,但是您的代码不起作用,因为它在某处出现语法错误。
NVaughan '16

2
嗯,复制粘贴错误:advice-add应该只有一次。我无法编辑评论。
YoungFrog

1
@NVaughan在这里有一个很好的解释:emacs.stackexchange.com/questions/5829/…–
djangoliv
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.