Shift-Tab производит загадочную ошибку в Emacs
Вопрос
я пытаюсь выучить org-mode
И заметил, что мои файлы аккуратно сложены при выходе из Emacs. При нажатии S-TAB
В попытке развернуть весь файл, я получаю следующее сообщение об ошибке в мини-буфере: M-[ z is undefined
. Отказ Googling Ошибка не была полезна. Любая идея, где происходит икота, и как я могу это исправить?
Я использую Mac OS X 10.6.4 с Terminal.app, GNU Emacs 23.2.1.
Редактировать: Теперь я могу подтвердить, что проблема является Terminal.app. Я не получаю это сообщение об ошибке, используя Emacs углерода или при использовании Emacs из ITERM.App.
Благодаря жалям терпеливо ходить за мной через решение.
Решение
Интерфейс между терминалом и программой, работающей внутри (здесь, Emacs), может отправлять только символы, а не ключи. Таким образом, специальные клавиши или комбинации ключей часто отправляют ключевую последовательность, начиная с ESC
. Отказ Например, ваш терминал, очевидно, отправляет ESC [ Z
за Сдвиг+Вкладка.
Обычно Emacs переводит эти последовательности персонажей обратно в ключевые имена, но кажется, что разработчики пропустили этот. Вы можете определить это сами
(add-hook 'term-setup-hook
(lambda () (define-key input-decode-map "\e[Z" [backtab])))
(Для Emacs <= 22, просто используйте (define-key function-key-map "\e[Z" [backtab])
.)
Некоторые способы могут определять привязки для S-tab
и нет backtab
. Отказ Если у вас есть Emacs 23, (define-key function-key-map [S-tab] [backtab])
должен сделать эти режимы работать.
Другие советы
Как и оригинальный плакат, я использую Mac OS X, но версии 10.6.8 и GNU Emacs 23.4.1. Я испытывал те же проблемы с S-Tab и Org-Mode. Я смог решить это, следуя шагам, которые были чрезвычайно полезны в: http://stuff.mit.edu/afs/sipb/user/daveg/info/backtab-howto.txt.txt.