Вышеуказанные решения хорошо работают для копирования текста из некоторого буфера в ANSI-термин, но они не могут скопировать текст из ANSI-термина в другой буфер (например, скопировать команду, которую вы только что выполнили, в сценарий оболочки, который вы редактирование). Добавление этого в мой файл .emacs решило эту проблему для меня (в Emacs 24.4):
(defun my-term-mode-hook ()
(define-key term-raw-map (kbd "C-y") 'term-paste)
(define-key term-raw-map (kbd "C-k")
(lambda ()
(interactive)
(term-send-raw-string "\C-k")
(kill-line))))
(add-hook 'term-mode-hook 'my-term-mode-hook)
Обратите внимание, что если вы хотите привязать kill / yank к нажатию клавиши, начинающемуся с escape-символов ANSI-термина (по умолчанию Cc и Cx), и хотите, чтобы это работало в маловероятном случае, если эти изменения изменятся, вы можете вместо этого определить ваши нажатия клавиш (без начального выхода) на term-raw-escape-map
, как это сделано в ответе пользователя 347585.