Часто я копирую фрагмент кода в буфер обмена моей операционной системы из Интернета. Затем я делаю следующие простые шаги:
- Переключиться в мое окно Emacs
- Найдите место, куда я хочу вставить код
- Используйте
C-y
(yank
), чтобы вставить скопированный текст.
Однако иногда я обнаруживаю (к моему большому разочарованию), что я невольно использовал какую-либо форму команды уничтожения (например, kill-word
или kill-line
), находясь на шаге 2. В таких случаях скопированный текст из «буфера обмена» никогда не превращается в уничтожение. кольцо.
Есть ли способ убедиться, что скопированный текст из других приложений всегда попадает в мой список уничтожений?
Я чаще всего работаю в Linux, но я также регулярно использую Emacs в Windows и Mac OS X, поэтому предпочтителен независимый от ОС ответ.
copy-paste
clipboard
nispio
источник
источник
Ответы:
Вам нужно настроить
save-interprogram-paste-before-kill
наt
. Это подтолкнет ваш буфер обмена на killring на случай, если вы убьете что-нибудь в emacs перед вставкой в буфер обмена. Связанная настройка заключается в том,yank-pop-change-selection
что ваш текущий рывок в emacs помещается в буфер обмена. Чтобы оба они работали, вам нужноx-select-enable-clipboard
(заменено наgui-select-enable-clipboard
в emacs 25.1) значение поt
умолчанию.Причина, по которой это отключено по умолчанию, состоит в том, чтобы предотвратить непреднамеренную передачу большого объема данных в killring, который сохраняется в течение сеанса в отличие от буфера обмена, который легко заменяется.
источник
save-interprogram-paste-before-kill
кажется, делает именно то, что я хочу!gui-select-enable-clipboard
называется простоselect-enable-clipboard
.другое решение - просто использовать инструмент Cli, если это возможно,
pbcopy / pbpaste на Mac
getclip / putclip на Cygwin
Преимущество этого решения в том, что буфер обмена можно использовать всегда (например, при удаленном ssh).
Мой ответ состоит из двух частей. В первой части представлены некоторые удобные инструменты для работы с буфером обмена. часть вторая ответит на ваш оригинальный вопрос (сохраните буфер обмена в список уничтожений).
ЧАСТЬ ПЕРВАЯ
Вставьте следующий код в ваш ~ / .emacs:
ЧАСТЬ ВТОРАЯ
вставьте приведенный ниже код в ваш ~ / .emacs, и теперь используйте «Mx paste-from-clipboard-and-cc-kill-ring» для вставки:
источник