将“ C-(”发送到VT100/XTERM终端(Mac OS X的终端)中的Emacs?
题
是否有可能以任何方式将密钥“ c-(”发送到VT100/XTERM终端(MAC OS X终端)上的EMAC?是否可以发送逃生序列以实现等效?
我怀疑基本问题是将控制与角色“(”(以及使用Shift产生的其他此类字符)相结合的概念不存在。
注意:使用可可emacs不是一个选择。以及需要“ c-”的原因(“ paredit.el在其他关键组合中都使用它,并且最好不要重新重塑它(因为将其放在“ c-(”)上是有意义的。
解决方案
VT100终端无法做到这一点,因为没有 ^(
控制字符对应于 (
. 。但是,Xterm具有所谓的“修改”模式,它确实允许为类似组合发送唯一的密钥编码。
为了启用它,设置 modifyOtherKeys
资源,例如 ~/.Xdefaults
:
XTerm*vt100.modifyOtherKeys: 1
因此,CTRL+(将发送以下密码:
^[[27;6;40~
但是,这很长,因此引入了类似的密钥编码的另一种格式,可以通过设置 formatOtherKeys
资源:
XTerm*vt100.formatOtherKeys: 1
因此,Ctrl+(发送:
^[[40;6u
在这两个密钥编码中,40是十进制ASCII代码 (
, ,6代表CTRL。
看 man xterm
和 http://invisible-island.net/xterm/ctlseqs/ctlseqs.html 有关更多详细信息。不知道terminal.App是否支持任何一个。
不隶属于 StackOverflow