我在Emacs上使用ansi-term,需要在那里粘贴一些单词. “粘贴”仅适用于鼠标中键.我知道使用C-x C-j和C-c C-k,我们可以在char run和line run之间切换,但是不方便.我更喜欢用C-y或C-c来完成这项工作.在线搜索,但解决方案不适用于我的emacs23. 最佳答案 这里有两个选择:使用劣质流程或Emacs.
要使用劣质过程(可能是使用readline的东西),只需发送原始C-y字符.
(define-key term-raw-map (kbd "C-k") 'term-send-raw)
(define-key term-raw-map (kbd "C-y") 'term-send-raw)
然后C-k和C-y被直接发送到终端,在那里它们的功能就像它们在任何其他终端中一样(例如,分别杀死到行尾和抽搐).由于下级过程正在接收和解释按键,因此Emacs将与杀戮和猛击无关.
要使用Emacs的kill ring,请使用term-paste.
(define-key term-raw-map (kbd "C-c C-y") 'term-paste)
就个人而言,我喜欢像常规终端一样处理术语模式缓冲区,因此我在编辑命令行时通常使用鼠标来复制/粘贴和C-k / C-y.
FWIW,我使用multiterm,而我这样做
(with-eval-after-load "multi-term"
(dolist
(bind '(("C-k" . term-send-raw)
("C-y" . term-send-raw)
("C-c C-y" . term-paste)
))
(add-to-list 'term-bind-key-alist bind)))