Почему 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 распознать последовательность:
- Связывание M- <вверх> / M- <вниз> в Emacs 23.1.1
- Shift-Tab вызывает загадочные ошибки в Emacs
- http://www.gnu.org/savannah-checkouts/gnu/emacs/manual/html_node/elisp/Translation-Keymaps.html
Если вы можете вместо этого запустить xterm, то вам, вероятно, повезло, из-за некоторых специфичных для xterm улучшений. Посмотрите на следующее:
- Отправить "C-(" в Emacs в терминале VT100/xterm (терминал Mac OS X)?
- http://www.dur.ac.uk/p.j.heslin/Software/Emacs/Download/xterm-extras.el
(Я не уверен, что вторая ссылка уместна в данном конкретном случае, но, кажется, стоит включить).
Некоторые другие связанные вопросы и ответы: