我正在尝试学习org-mode
并注意到当我退出emacs时我的文件整齐折叠。在尝试展开整个文件时按S-TAB
,我在迷你缓冲区中收到以下错误消息:M-[ z is undefined
。谷歌搜索错误没有帮助。知道打嗝发生在哪里以及我如何解决它?
我正在使用Mac OS X 10.6.4和Terminal.app,GNU Emacs 23.2.1。
编辑:我现在可以确认问题是Terminal.app。我没有使用Carbon Emacs或在iTerm.app中使用Emacs时收到此错误消息。
感谢Gilles耐心地帮助我解决问题。
答案 0 :(得分:9)
终端与其内部运行的程序(此处为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])
应该使这些模式有效。
答案 1 :(得分:1)
与原版海报一样,我使用的是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