Я пытаюсь запустить Emacs в терминале. Я включил «использовать опцию как мета» в настройках терминала, и примерно 95% работают правильно.
Последовательность клавиш ctrl- / (или в обозначении Emacs C- /) - "отменить". Эта последовательность клавиш просто заставляет терминал звонить в звонок. Как я могу это исправить?
Ответы:
Контроль
/
- не входит в набор стандартных кодов управления . Это не может быть непосредственно представлено как нажатие клавиши во многих терминальных эмуляциях. Такое нажатие клавиши правильно определяется только в определенных для платформы «режимах сканкода» или «режиме GUI» (где API сообщает вам, какие именно ключи и модификаторы используются). Ваш эмулятор терминала издает звуковой сигнал, потому что он фактически является недопустимым нажатием клавиши.Стандартные контрольные коды охватывают только «контрольные» версии
@
A
-Z
[\]^_
(ASCII 0 - 31) и?
(ASCII 127)В большинстве программ эмулятора терминала, работающих с большинством раскладок клавиш США, вам может потребоваться нажать Shiftдля генерации некоторых «управляющих кодов»:
@
есть Shift2)^
есть Shift6)_
есть Shift-)?
есть Shift/); C-? обычно генерируется либо Backspace(на клавиатурах Apple клавиша, помеченная просто «удалить» без дополнительного символа ⌦), либо Delete(клавиша с ⌦ на клавиатуре Apple).В основанном на tty Emacs вы обычно можете использовать C-_
undo
вместо C- /.источник
Ctrl- / отправляет 0x1f, что эквивалентно Ctrl-_ со времен VT102. Существует много эмуляторов VT100, но на самом деле это эмуляторы VT102. iTerm2 работает, потому что он следует этому поведению.
Только эмуляторы, которые строго соответствуют спецификации VT100, не могут отправлять Ctrl- /. Я считаю, что приложение Terminal является одним из них.
VT100 маскирует 2 старших разряда 7-битного ASCII при нажатии клавиши управления. / равно 0x2f, o равно 0x6f. Когда 2 бита замаскированы, они оба равны 0x0f. VT100 может отправлять Ctrl-o, но не Ctrl- /.
источник