2011-09-18 125 views
2

我想弄清楚是否有办法重置键盘映射,以便我可以手动启用功能与适当的键绑定。我试图做一个定制的Emacs构建,并希望完全控制启用的键绑定和功能。有没有办法重置Emacs键盘映射?

编辑:感谢您的回答,这回答了我一直在寻找的完美。我试图谷歌它,我找不到多少,但现在我开始更多地了解Emacs。

基本上我试图学习它并根据我的喜好自定义按键绑定。尽管我在重写某些主键时遇到了麻烦,但关于禁用主模式的建议正是我所期待的。

+0

您已经完全控制emacs中的按键绑定,通常通过在.emacs文件中使用elisp - 无需执行自定义构建。如果你需要做一些常规定制程序无法做到的事情(有什么不能用这种方式完成的?),你需要给我们更多关于你的目标的细节。 – Tyler

回答

3

那么,Emacs会给你完全控制,有几种不同的方式来完成它听起来像你想要做的事情。要成功,我建议您阅读并理解本手册的Keymaps部分。如果您定制的Emacs构建使用任何主要或次要模式,则必须执行特殊工作来禁用/覆盖它们设置的任何键盘映射。

特别感兴趣的部分是Creating Keymaps,Active Keymaps,Controlling Active Maps,以及......几乎整个章节。

我推荐从创建一个基本键盘映射开始,并用你的全局键盘覆盖全局键盘映射。这将是一个好的开始。也许最简单的方法是做这样的事情:

(setq global-map (make-keymap)) 
(global-set-key ...) 

虽然,你也将不得不关闭,从建立自己的钥匙的主要模式,最简单的办法是禁用的主要模式的自动选择通过这样做:

(setq auto-mode-alist nil) 

阅读关于How Emacs Chooses a Major Mode的部分。

的问题需要更多的细节,以便编写更加详细的解答......

+1

这篇文章是另一个很好的参考:http://www.masteringemacs.org/articles/2011/02/08/mastering-key-bindings-emacs/ – phils

1

捆绑时可以将功能集成到一个较小的模式有它自己的键盘映射。当启用次要模式时,将在全局映射之前查阅其键盘映射,覆盖后者的效果。禁用时,全局映射中的默认键绑定将再次可见。