在终端中创建复杂转义码(转义序列)的正确方法

时间:2017-08-22 13:24:09

标签: macos emacs terminal

我不明白如何生成转义序列,例如。如果:

  

^[[27;7;47~   映射到:   C-M-/

     

^[[27;6;40~   映射到:   C-(

所以为什么这不像我想象的那样有效:

  

^[[27;6;83~   没有映射到:   C-S-s or control/shift/s

虽然83是大写'S'的ASCII。

control/shift/s(小写)的正确转义码是什么?

1 个答案:

答案 0 :(得分:2)

您作为示例列出的序列看起来像xterm的编程模式(modifyOtherKeys中引入的2006资源)。资源设置对应于control sequence,其中一些emacs配置知道如何初始化。参考手册页,即 2

   2    enables this feature for keys including the exceptions
        listed.

因为它会影响所有修饰符(包括 Shift ),所以只设置相应的资源并不是很有用。

OSX终端不支持该控制序列(或任何类似的控制序列)。如果您希望OSX终端发送这些转义序列,您必须按照 How to create custom escape sequence in mac terminal (使用xterm作为参考)中的说明设置您的首选项。同一评论适用于某人可能建议的其他终端。

为了举例,这里是我的一个测试程序的屏幕截图,显示 s Shift s 控制 s Shift 控制 s

example of modifyOtherKeys