jrh*_*424 7 emacs emacs23 org-mode
我正在尝试学习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耐心地为我提供解决方案.
终端与其内部运行的程序(此处为Emacs)之间的接口只能发送字符,而不能发送密钥.因此,特殊键或键组合通常会发送键序列ESC.例如,你的终端显然发出ESC [ Z了Shift+ Tab.
通常,Emacs会将这些字符序列转换回键名,但似乎开发人员错过了这个.您可以自己定义它
(add-hook 'term-setup-hook
(lambda () (define-key input-decode-map "\e[Z" [backtab])))
Run Code Online (Sandbox Code Playgroud)
(对于Emacs <= 22,只需使用(define-key function-key-map "\e[Z" [backtab]).)
某些模式可以定义绑定S-tab而不是绑定backtab.如果你有Emacs 23,(define-key function-key-map [S-tab] [backtab])应该使这些模式工作.