如何在Emacs中重新映射TAB?

时间:2013-08-15 18:00:14

标签: macos emacs elisp

这感觉应该很简单,但它让我发疯。我有一个功能indent-or-expand,我想重新映射到标签,但我根本无法让它工作(Emacs v24,OS X) 。我能从Emacs获得的唯一帮助是:

  

错误"要绑定密钥TAB,请使用\" \\ t \",而不是[TAB]"

执行(global-set-key [\"\\t\"] 'indent-or-expand)显然将函数绑定到<"\t">(无论是什么),以及我尝试过的每个组合 \ &#34 ; [ ] 失败。

我DID设法将函数绑定到 t ,但是......

2 个答案:

答案 0 :(得分:2)

使用kbd功能,即:

(global-set-key (kbd "TAB") ...)

答案 1 :(得分:2)

除了别人告诉你的内容外:

  1. 您引用的Emacs错误消息告诉您使用“\ t”,如果您使用它,则应该没问题:

    (global-set-key“\ t”'缩进或扩展)

  2. 还要注意TAB是一回事,<tab>可能是另一回事。 IOW,它取决于您的物理键盘Tab键实际发送给Emacs的代码。 TAB是制表符,它与ACSCII控制字符C-i相同,即Control + i,其十进制整数值为9. {{1 (在Emacs中)是一个伪函数键。 (很可能<tab>就是您想要的。使用TAB查看您的实际C-h k密钥的作用。)