Отправить “C- (” Emacs в терминале VT100 / xterm (терминал Mac OS X)?

Возможно ли каким-либо образом отправить ключ «C- (» на Emacs через терминал VT100 / xterm (терминал Mac OS X)? Существует ли escape-последовательность, которую можно отправить для достижения эквивалента?

Я подозреваю, что основная проблема заключается в том, что концепция объединения управления с характером “(” (и других таких символов, которые производятся с использованием сдвига) не существует.

Примечание. Использование Cocoa Emacs не является вариантом. И причина необходимости «C- (» заключается в том, что paredit.el использует его среди других комбинаций клавиш, и было бы предпочтительнее не переназначать его (потому что имеет смысл иметь его на «C- (»).

Терминал 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 xterm и http://invisible-island.net/xterm/ctlseqs/ctlseqs.html . Не знаю, поддерживает ли Terminal.app любой из них.

Давайте будем гением компьютера.