![终端中的控制键和向上/向下键供 emacs 使用](https://linux22.com/image/25122/%E7%BB%88%E7%AB%AF%E4%B8%AD%E7%9A%84%E6%8E%A7%E5%88%B6%E9%94%AE%E5%92%8C%E5%90%91%E4%B8%8A%2F%E5%90%91%E4%B8%8B%E9%94%AE%E4%BE%9B%20emacs%20%E4%BD%BF%E7%94%A8.png)
在终端窗口中运行 emacs 时(使用标志从命令行启动 emacs 时)是否可以使用C-up
and ?当我按下这些键并让这些键在 emacs 中工作时,我的终端应该发送什么?C-down
-nw
C-up
C-down
我在 Mac OSX 上,使用 iterm2 ssh 到远程 Linux 服务器,在其中从 bash 启动 emacs 会话。
答案1
终端知道字符,而不是键,因此没有对应字符的键需要转换为转义序列并返回。
您可以选择任何不会引起任何冲突并且 iterm2 和 Emacs 都同意的控制序列。不幸的是,这些控制序列没有标准化。\e[1;5A
和\e[1;5B
是流行的选择(其中\e
是转义字符)。
Emacs 有一个相当复杂的系统来将转义序列转换为键。看翻译键位图在手册中。input-decode-map
除非您的 Emacs 旧版本没有该功能,否则请使用。
(define-key input-decode-map "\e[1;5A" [C-up])
(define-key input-decode-map "\e[1;5B" [C-down])
在 iterm2 中,在配置文件的“Keys”选项卡中设置相应的按键序列。看如何在 iTerm2 中使用 control+左箭头返回一个单词?获取图解指南。