我正在尝试为emacs 23设置multi-term,但是......
(setq term-unbind-key-list '("C-z" "C-x" "C-c" "C-h" "C-y"))
我看到的所有推荐解决按键绑定冲突的网站都不起作用——例如,我仍然无法在 man 页面中使用 C-z。是 Emacs 23 发生了什么变化?我该如何正确地解除绑定?
term-unbind-key-list
只会影响键位映射term-raw-map
中的绑定。你可以通过查看函数multi-term-keystroke-setup
的文档来了解这一点(不知道为什么变量本身没有提供这些信息...)
所以......很可能C-z仍然被绑定到`term-char-mode'的按键设置。
默认情况下,
term-char-mode
的按键绑定会与用户的按键冲突。因此,此函数将在term-raw-map
中取消某些键的绑定,并在term-raw-map
中绑定某些按键。
suspend-frame
,因为这是Emacs默认情况下的行为。suspend-job
),可以执行以下操作:(require 'multi-term)
(add-to-list 'term-bind-key-alist '("C-z" . term-stop-subjob))
term-unbind-key-list
和term-bind-key-alist
列表是为“字符模式”、“行模式”还是两者都定义行为的吗?我问这个问题的原因是因为我喜欢在Emacs终端上在两个不同的键盘快捷方式集之间切换的能力。例如,在一个模式中,C-n
将移动到缓冲区中的上一行,就像在常规Emacs中一样,而在另一个模式中,C-n
将被发送到终端)。使用这些列表,multi-term是否可以实现这一点? - Amelio Vazquez-Reina