Отправить "C-(" в Emacs в терминале VT100/xterm (терминал Mac OS X)?
Можно ли каким-либо образом отправить ключ "C-(" в Emacs через терминал VT100/xterm (терминал Mac OS X)? Существует ли какая-либо escape-последовательность, которую можно отправить для достижения аналога?
Я подозреваю, что фундаментальная проблема заключается в том, что концепция объединения управления с символом "(" (и другими такими символами, которые создаются с помощью shift) не существует.
Примечание: использование Emacs Какао не вариант. И причина необходимости "C-(") заключается в том, что paredit.el использует его среди других комбинаций клавиш, и было бы предпочтительно не переназначать его (потому что имеет смысл иметь его на "C-(").
1 ответ
Терминал 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 что-либо из этого.