Как скопировать текст без потери выделения?

11

Когда я копирую выбранный текст ( kill-ring-saveс помощью M-w), я автоматически теряю свой выбор. Я попытался с Transient Mark Mode без удачи. (Обратите внимание, что я не использую режим CUA.)

NVaughan
источник
Сначала я думал, что речь идет о выборе X (в этом случае переменная select-active-regionsбудет релевантной), но, похоже, речь идет о выделении региона.
YoungFrog

Ответы:

11

Лучшее решение использовать C-x C-xдля реактивации знака. Но если вы действительно хотите сохранить выбор, вы можете использовать:

(defun copy-keep-highlight (beg end)
  (interactive "r")
  (prog1 (kill-ring-save beg end)
    (setq deactivate-mark nil)))
djangoliv
источник
1
Я бы посоветовал воспользоваться таким советом, как этот:(defun yf/no-deactivate-mark (&rest _) (setq deactivate-mark nil)) (advice-addadvice-add 'kill-ring-save :after #'yf/no-deactivate-mark)
YoungFrog
@djangoliv, спасибо. Что это prog1?
NVaughan
@YoungFrog, спасибо, но ваш код не работает, поскольку где-то есть синтаксическая ошибка.
NVaughan
2
Ах, ошибка копирования и вставки: advice-addдолжна быть только один раз. Я не могу редактировать комментарий.
YoungFrog
1
@NVaughan здесь хорошее объяснение: emacs.stackexchange.com/questions/5829/…
djangoliv