Назад | Перейти на главную страницу

Control + знаки препинания не регистрируются в терминале

Для использования emacs в терминале я хочу использовать комбинации клавиш, например Контроль- '. Но когда я пробую эту комбинацию клавиш, она просто пишет ' в командную строку. То же самое происходит со всеми знаками препинания. Есть ли способ обойти это?

Из-за как работают ASCII-терминалы, Ctrl-' и другие подобные комбинации бессмысленны.

Значение ASCII одинарной кавычки - 39.10 и с тех пор 3910 and 6310 все еще равно 3910 в результате вы все равно получите одинарную цитату. Только символы с кодами ASCII от 6410 и 12610 (включительно) производят значимые управляющие коды (010 через 3110). Для простоты я опустил некоторые тонкости.

Когда вы не используете терминал ASCII, вы можете сопоставить эти комбинации клавиш, поскольку вы используете коды сканирования клавиатуры или аналогичные.

Я написал пакет Emacs, который может научить Emacs и терминалы правильно распознавать все клавиши клавиатуры ПК и комбинации клавиш-модификаторов:

https://github.com/CyberShadow/term-keys

Конфигурация по умолчанию уже включает кодировку Ctrl` (чтобы его можно было отличить от просто ` или Ctrlсдвиг`, и привязывается в Emacs к C-`).