将自定义转义序列从iTerm2传递到Emacs

时间:2017-03-31 09:24:31

标签: emacs terminal iterm2 ansi-escape

我花了很长时间阅读有关ANSI转义码(例如wikipedia,特别是generic format上的序列)以及终端模拟器如何捕获并将关键组合转换为转义序列(例如,一个很棒的线程{ {3}})。

我(我想)我知道转义语句允许任意长的私有/非标准转义序列;特别是iTerm2(macOS的终端仿真器)定义了一组专有的转义序列(here)。

首先,我对私人逃脱序列是否正确?

如果是这样,是否有可能(以及如何)定义私有转义序列,将其绑定到iTerm2中的某个键(例如Command-z),以便iTerm2不会捕获它并直接将其传递给活动程序(例如Emacs)?

最终目标是允许Emacs在终端模拟器中捕获基于Command的组合键...

1 个答案:

答案 0 :(得分:1)

iTerm2识别的转义序列 无关紧要。虽然通常设置特殊键来发送以 escape 字符开头的字符,但这些字符实际上不是转义序列(它们对终端没有任何意义)。

您想要的是通过在iTerm2首选项对话框中配置键/修饰符来发送您可以配置Emacs识别的字符。以下是首选项对话框的屏幕截图:

iTerm2 key-mappings

在不同的偏好设置对话框中,您可以告诉iTerm2执行不同的操作(例如,可能/可能不在菜单上的操作的快捷方式):

keys used to tell iTerm2 to do something