Интерфейс между терминалом и запущенной в нем программой (здесь, Emacs) может отправлять только символы, а не ключи. Поэтому специальные клавиши или комбинации клавиш часто отправляют последовательность клавиш, начинающуюся с ESC
. Например, ваш терминал, очевидно, отправляет ESC [ Z
для Shift + Tab .
Обычно Emacs переводит эти последовательности символов обратно в имена ключей, но кажется, что разработчики пропустили это. Вы можете определить это самостоятельно с помощью
(add-hook 'term-setup-hook
(lambda () (define-key input-decode-map "\e[Z" [backtab])))
(Для Emacs <= 22 просто используйте <code>(define-key function-key-map "\e[Z" [backtab]).)
Некоторые режимы могут определять привязки для S-tab
, а не backtab
. Если у вас Emacs 23, (define-key function-key-map [S-tab] [backtab])
должен заставить эти режимы работать.