终端中的控制和向上/向下键供 emacs 使用

ALi*_*LiX 3 terminal keyboard emacs

在终端窗口中运行 emacs 时是否可以使用C-upC-down(当从带有-nw标志的命令行启动 emacs 时)?我应该对我的终端发送当我按下C-up,并C-down为这些键的工作在Emacs?

我在 Mac OSX 上,使用 iterm2 ssh 进入远程 linux 服务器,在那里我从 bash 启动 emacs 会话。

Gil*_*il' 6

终端知道字符,而不是键,因此没有相应字符的键需要转换为转义序列并返回。

您可以选择任何不会引起任何冲突且 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)