ALi*_*LiX 3 terminal keyboard emacs
在终端窗口中运行 emacs 时是否可以使用C-up
和C-down
(当从带有-nw
标志的命令行启动 emacs 时)?我应该对我的终端发送当我按下C-up
,并C-down
为这些键的工作在Emacs?
我在 Mac OSX 上,使用 iterm2 ssh 进入远程 linux 服务器,在那里我从 bash 启动 emacs 会话。
终端知道字符,而不是键,因此没有相应字符的键需要转换为转义序列并返回。
您可以选择任何不会引起任何冲突且 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])
Run Code Online (Sandbox Code Playgroud)
在 iterm2 中,在您的配置文件的“密钥”选项卡中设置相应的键序列。请参阅如何在 iTerm2 中获得控制+左箭头以返回一个单词?对于插图指南。
另请参阅终端下的 Emacs + paredit (Terminal.app, iTerm, iTerm2)。