发送“C-(”到VT100 / xterm终端的Emacs(Mac OS X的终端)?

时间:2010-12-02 17:21:52

标签: macos emacs terminal vt100

是否可以通过VT100 / xterm终端(Mac OS X终端)以任何方式发送密钥“C-(”到Emacs?是否有可以发送的转义序列以实现等效?

我怀疑基本问题是控制与字符“(”(以及使用shift生成的其他此类字符)组合的概念不存在。

注意:使用Cocoa Emacs不是一种选择。需要“C-(”的原因是paredit.el在其他键组合中使用它,并且最好不重新映射它(因为将它放在“C - (”)上是有意义的。

1 个答案:

答案 0 :(得分:15)

VT100终端无法做到这一点,因为没有与^(对应的(控制字符。但是,xterm具有所谓的“modifyOtherKeys”模式,它允许为这样的组合发送唯一的密钥代码。

要启用它,请设置modifyOtherKeys资源,例如在~/.Xdefaults

XTerm*vt100.modifyOtherKeys: 1

这样,Ctrl +(将发送以下密钥:

^[[27;6;40~

这是相当长的,所以引入了类似密钥代码的另一种格式,可以通过设置formatOtherKeys资源来启用:

XTerm*vt100.formatOtherKeys: 1

用它,Ctrl +(发送:

^[[40;6u

在这两个密钥代码中,40是(的十进制ASCII代码,而6代表Ctrl。

有关详细信息,请参阅man xtermhttp://invisible-island.net/xterm/ctlseqs/ctlseqs.html。不知道Terminal.app是否支持任何一个。

相关问题