Як скопіювати текст, не втрачаючи виділення?


11

Коли я копіюю вибраний текст ( kill-ring-saveз M-w), я автоматично втрачаю свій вибір. Я без спроби спробував у режимі "Тимчасовий марк". (Зверніть увагу, що я не використовую режим CUA.)


Спочатку я думав, що мова йде про вибір 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)))

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має бути лише один раз. Я не можу редагувати коментар.
ЯнгФрог

1
@NVaughan тут хороше пояснення: emacs.stackexchange.com/questions/5829/…
djangoliv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.