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 ((

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