Почему Ctrl+. не работает, когда я связываю его с командой в Emacs?

C-. не работает в терминале, когда я связываю его с командой в Emacs. Я пробовал эту процедуру на gnome-terminal и реальный терминал tty1. Я начинаю Emacs с -nw флаг, затем нажмите Ch k (команда для describe-key), затем нажмите C-., Emacs получает только ., без Ctrl, Как мне заставить это работать в Emacs?

Я связываю ключи с этим процессом:

(define-key c-mode-base-map (kbd "C-.") 'semantic-ia-fast-jump)

или же

(define-key c-mode-base-map [(control .)] 'semantic-ia-fast-jump)

1 ответ

Решение

Короче говоря, большинство эмуляторов терминалов ограничены в управляющих символах, которые они могут создавать (по той простой причине, что исходные терминалы, которые они эмулируют, также были ограничены).

Таким образом, ваш терминал, скорее всего, не производит ничего, кроме . когда вы нажимаете C-. (и если это так, то это, в основном, ваш ответ, если только нет способа настроить терминал для других действий).

(Каждый раз, когда вы думаете, что Emacs не работает на каком-либо входе при работе в терминале, вы должны попытаться проверить, действительно ли Emacs получает ввод, который, как вы думаете, есть.)

Если ваш терминал производит что-то другое, чем . затем обратитесь к следующим вопросам и ответам, чтобы узнать, как заставить Emacs распознать последовательность:

Если вы можете вместо этого запустить xterm, то вам, вероятно, повезло, из-за некоторых специфичных для xterm улучшений. Посмотрите на следующее:

Некоторые другие связанные вопросы и ответы:

Другие вопросы по тегам