8

我正在尝试学习org-mode并注意到当我退出 emacs 时我的文件被整齐地折叠起来。当按下S-TAB试图展开整个文件时,我在迷你缓冲区中收到以下错误消息:M-[ z is undefined. 谷歌搜索错误没有帮助。知道打嗝发生在哪里以及如何解决吗?

我正在使用带有 Terminal.app、GNU Emacs 23.2.1 的 Mac OS X 10.6.4。

编辑:我现在可以确认问题出在 Terminal.app 上。使用 Carbon Emacs 或在 iTerm.app 中使用 Emacs 时,我没有收到此错误消息。

感谢 Gilles 耐心地引导我完成解决方案。

4

2 回答 2

9

终端和其中运行的程序(这里是 Emacs)之间的接口只能发送字符,不能发送键。因此,特殊键或组合键通常会发送以 . 开头的键序列ESC。例如,您的终端显然发送ESC [ ZShift+ 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某些模式可能会为和 not定义绑定backtab。如果你有 Emacs 23,(define-key function-key-map [S-tab] [backtab])应该让这些模式工作。

于 2010-08-19T09:47:59.203 回答
0

与原始海报一样,我使用的是 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

于 2012-05-13T01:38:40.913 回答