LINUX.ORG.RU

Байндинг на ctrl + ...

 


0

1

Здравствуйте. Проблема в следующем - забайндил на всякие C-; C-, C-. нужные мне команды (rtags, iedit ...), раньше всё это работало (запускал gui emacs). Сейчас собрал emacs отключив всё что можно, запускаю его в консоли. Появилась проблема - нажатие C-; и смежных воспринимается им как нажатие без ctrl.

C-h k
C-;
; runs the command ...
Просьба: кому не сложно, проверьте, какой у вас будет выхлоп после запуска редактора $ emacs -nw с последующим C-h k и С-; . Нужно понять - это ограничение консольного emacs, я криво собрал редактор или ещё чего-то где-то отломал.
ЗЫ: консоль иксовая.

Ответ на: комментарий от SL_RU

Ясно, спасибо. Значит терминал, у меня st (simple terminal) стоит. Посмотрю, может есть к нему какой патч на этот случай (он так конфигурируется, фишка у suckless такая).

pavlick ()
Последнее исправление: pavlick (всего исправлений: 1)
Ответ на: комментарий от SL_RU

Это твой эмулятор терминала так ведёт себя. На настоящем терминале такого бы не было.

Эмулятор терминала ведет себя правильно. Он эмулирует терминалы, в которых не было таких символов. То есть если бы ты нажимал <Control>+<;>, то посылался бы <;>. Были возможны следующие комбинации с Control: https://en.wikipedia.org/wiki/C0_and_C1_control_codes

xterm, например, эмулирует поведение кучи терминалов

       The xterm program is a terminal emulator for the X Window System.  It
       provides DEC VT102/VT220 and selected features from higher-level
       terminals such as VT320/VT420/VT520 (VTxxx).  It also provides
       Tektronix 4014 emulation for programs that cannot use the window system
       directly.  

То есть проблема, как ты правильно заметил, не в Emacs, так как он напрямую со сканкодами не работает, и когда ввод-вывод осуществляется на терминале (или эмуляторе), он честно отрабатывает то, что посылает ему терминал. Поэтому в Emacs по умолчанию ничего на эти комбинации не забиндено, чтобы одинаково работало в терминале и в графике.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 3)