在终端窗口中运行 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+左箭头返回一个单词?获取图解指南。