Emacs не работает с этой последовательностью клавиш?
Я пытаюсь привязать обратную линию уничтожения к Ctrl-Backspace. Следующие связывает работу:
(global-set-key (kbd "C-\d") 'backward-kill-line) ; emacs-w32
(global-set-key (kbd "\b") 'backward-kill-line) ; xterm
Однако, когда я захожу в ssh из Windows, я обычно использую Mintty. Последовательность Ctrl-v, сообщаемая Bash, равна '\037', но emacs не распознает ее. Вместо этого, каждый раз, когда я нажимаю Ctrl-Backspace во время работы emacs с термином Mintty, в буфер отправляются следующие символы: ';5u'.
Есть ли способ заставить emacs использовать '; 5u' в качестве привязки ключа? Указание (kbd ";5u") не сработает, потому что emacs ожидает один символ.
1 ответ
Заставьте Emacs помочь вам, наберите C-h k
и ваш C-v
, Emacs показал что-то вроде того, что я получаю за Ctrl + numPlus
когда делать это в xterm
:
M-O 5 k is undefined
который я перевожу в
(global-set-key (kbd "M-O 5 k") 'end-of-line)
и это отлично работает!
ОБНОВЛЕНИЕ Используйте мой expect
скрипт для получения последовательности байтов из терминала, который вы получаете при нажатии комбинации клавиш: http://sourceforge.net/u/gavenkoa/utils/ci/default/tree/misc/keyseq.exp
Если вы используете mintty
Я проверяю документы: https://code.google.com/p/mintty/wiki/Tips и ваша последовательность кодов ключей очень похожа на другие примеры, поэтому я считаю, что:
(global-set-key (kbd "\e[1;5u") 'end-of-line)
делай работу за тебя.
Проверьте темы от (info "(elisp)Reading Input)
,
ОБНОВЛЕНИЕ 2 Вы попали в ловушку Ctrl+Backspace
вопрос для терминалов, исследуйте информацию самостоятельно: https://www.google.com.ua/search?q=ctrl+backspace+terminal
Я помню, что у меня та же проблема несколько лет назад. Основная проблема в том, что Ctrl+Backspace
генерировать ту же последовательность байтов в терминальных эмуляторах, как Ctrl-H
, По этой причине я тренируюсь использовать ESC Backspace
для удаления слова в обратном направлении. Я никогда не углублялся в стандарты эмуляции терминала и код реализации, чтобы понять, возможно ли генерировать другую последовательность кода в mintty
за C-Backspace
((