Shift-Tab производит загадочная ошибка в Emacs

I ' Я пытаюсь изучить org-mode и заметил, что мои файлы аккуратно сложены, когда я выхожу из emacs. При нажатии S-TAB в попытке развернуть весь файл, я получаю следующее сообщение об ошибке в мини-буфере: M- [z не определено . Погуглить ошибку не помогло. Любая идея, где происходит сбой и как я могу это исправить?

Я использую Mac OS X 10.6.4 с Terminal.app, GNU Emacs 23.2.1.

Редактировать: Я могу подтвердить сейчас что проблема в Terminal.app. Я не получаю это сообщение об ошибке при использовании Carbon Emacs или при использовании Emacs из iTerm.app.

Спасибо Gilles за терпеливое руководство по решению проблемы.

7
задан jrhorn424 19 August 2010 в 18:48
поделиться

1 ответ

Интерфейс между терминалом и программой, запущенной внутри него (здесь Emacs), может передавать только символы, а не клавиши. Поэтому специальные клавиши или комбинации клавиш часто посылают последовательность клавиш, начинающуюся с ESC. Например, ваш терминал, очевидно, посылает ESC [ Z для Shift+Tab.

Обычно 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]) должен заставить эти режимы работать.

9
ответ дан 7 December 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: