4

我在 Emacs 上使用 ansi-term 并且需要在那里粘贴一些单词。“粘贴”仅适用于鼠标中键。我知道使用C-x C-jand ,我们可以在andC-c C-k之间切换,但是不方便。我更喜欢使用或做这项工作。在线搜索,但解决方案不适用于我的 emacs23。char runline runC-yC-c y

4

1 回答 1

2

这里有两个选择:使用劣质进程或 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 将与 kills 和 yanks 无关。

要使用 Emacs 的 kill ring,请使用term-paste.

(define-key term-raw-map (kbd "C-c C-y") 'term-paste)

就个人而言,我喜欢将缓冲区视为常规终端,因此我通常在编辑命令行时term-mode使用鼠标来复制/粘贴和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)))
于 2013-02-22T17:01:25.587 回答