Mic*_*elt 9 emacs elisp key-bindings
是否有一个全局覆盖键绑定的命令,以便它甚至覆盖主要模式的本地设置?global-set-key被主要模式绑定覆盖,如下所述:http://www.gnu.org/software/emacs/manual/html_node/emacs/Rebinding.html
不,没有(内置)方法来设置覆盖所有其他键的绑定.查看Emacs如何通过阅读"搜索活动键盘图"来搜索键映射.
你可以设置overriding-terminal-local-map
或overriding-local-map
包含你想要的绑定的键盘映射,但这会阻止你的缓冲区有任何缓冲区/覆盖/次模式键盘映射,几乎禁用大多数Emacs.
Emacs查找绑定的下一个区域位于当前点的character属性中 - 可能不会在整个地方使用,但它是覆盖绑定的一种方式(除非你使用字符属性来定义你的密钥到处) ,真icky).
Emacs看起来的下一个地方是变量emulation-mode-map-alists
,这可能是你最好的选择.它被设置为在需要处理多个小模式键盘映射的情况下使用的包.
创建一个全局次要模式(请参阅定义次要模式),将键绑定放在那里,将次要模式和键盘映射添加到emulation-mode-map-alists
,并打开次要模式.
您的密钥绑定现在优先于所有其他密钥绑定,除了emulation-mode-map-alist
列表中较早的那些,或者在字符属性中找到,或者在overriding-local-map
...中
我相信这是你能做的最好的事情,而且不会破坏Emacs的来源.
小智 5
在小模式键绑定覆盖我的个人全局绑定的情况下,我有运气使用add-hook + local-unset-key
(add-hook'undop-tree-mode(lambda()(local-unset-key"C- /")))