Я использую GNU Emacs, обычно такой, emacs -nw
который запускает версию терминала (в отличие от оконной версии GUI).
Я пишу школьные документы, LaTeX
поэтому использую их flyspell-mode
для проверки орфографии в emacs. Это хорошо работает в версии с графическим интерфейсом, но в терминале у меня возникают проблемы с нажатием клавиши C-.
( Ctrl- .). В tty это ничего не делает, а в terminator
или gnome-terminal
просто вводит «.».
Что я могу сделать, чтобы заставить его делать то же, что и в оконной версии (показывать варианты написания слов с ошибками)?
РЕДАКТИРОВАТЬ: В случае, если это имеет значение, я использую Ubuntu 12.04 с Emacs 23.3.1 (который я считаю по умолчанию из репо 12.04).
command-line
emacs
cg505
источник
источник
Esc
-x
flyspell-mode
? Это работает для меня.flyspell-mode
сM-x
, ноESC x
, похоже , ничего не изменилось.ESC-TAB
.ESC TAB
илиM-TAB
оба работают на меня. Спасибо за совет @McNisse.Ответы:
Похоже, что важная часть этого вопроса уже была дана в комментариях, но для устранения основной причины, если вам интересно, я думаю, ctrl-. не работает в терминале из-за некоторых ограничений эмуляторов терминала. В стандартном терминале ctrl определен для отправки кода ASCII клавиши, которую вы нажимаете минус 64 (вот почему ctrl-J (74) отправляет символ новой строки (10), а ctrl-I (73) отправляет вкладку (9), например ). Поскольку ASCII-код периода равен 46, вычитание 64 даст -18, что недопустимо, поскольку оно отрицательно и нет отрицательных ASCII-кодов и, следовательно, ничего не может получить и понять emacs.
Когда вы запускаете emacs в оконном режиме, механизм эмулятора терминала обходится, и вместо этого используется более надежная обработка клавиатуры X11, которая может обрабатывать более неясные нажатия клавиш (вместо того, чтобы сводить каждое нажатие клавиши до одного символа ASCII, программа получает исходный ключ). плюс все применимые модификаторы, отдельно). Так что, вероятно, невозможно заставить основанный на tty emacs обрабатывать ctrl-. если вы не вносите пользовательские изменения в свой эмулятор терминала (и, возможно, также в emacs).
источник
'C-.'
просто захватить с emacs в xterm, но не с urxvt или st. Есть идеи, почему это так?Хотя приведенный выше ответ дает хорошее объяснение того, почему он не работает, в действительности он не рассматривает, как заставить его работать. Для
iTerm2
вы можете решить эту проблему путем добавления сопоставления клавиш для последовательности побега . Я думаю, что было бы что-то подобное вterminator
илиgnome-terminal
источник