如何解决哪些包未设置键绑定?

时间:2012-01-25 13:54:44

标签: emacs

我的配置中的某些内容未设置/覆盖C-c C-e的某些标准键绑定,因此各种主要模式下的命令无法正常工作。在AUCTeX中C-c C-e应该启动“插入环境”对话框并在组织模式下相同的键应该启动导出/发布对话框,但在这两种模式中C-c C-e都是未定义的,而emacs只是等待更多输入。

我知道我可以用-Q启动emacs并加载包直到出现问题(如果我以这种方式加载emacs并在org-mode中打开文件,键绑定可以正常工作)但是,就像很多人们,在某些时候我的init文件变得非常大。是否有更快捷,更智能的方式?

[编辑]我的配置中没有任何内容明确地取消C-c C-e

3 个答案:

答案 0 :(得分:4)

调试器可能会为您提供足够的线索来对其进行排序。尝试将以下内容添加到.emacs

的开头
(debug-on-entry 'global-unset-key)

您可能还需要尝试'local-unset-key。有关详细信息,请参阅debugger manual

答案 1 :(得分:4)

二进制搜索是你的朋友。

转到.emacs的中间并添加(error "here"),然后启动Emacs并查看问题是否仍然存在。

如果是,则在文件的当前和顶部之间插入另一条错误行,如果没有,则注释掉当前错误并在当前和底部之间添加一半。

重复二分过程,直到找出造成问题的一两行。

答案 2 :(得分:0)

您可以使用C-h k C-c C-e找出与您的组合绑定的功能。

在弹出的帮助缓冲区中,您将获得函数名称,文档以及指向文件的链接。按照该链接,您将最终到达功能定义的位置。

此时,应该很容易确定哪个包负责使用文件名重新定义您的键绑定。

如果这没有帮助,您可以在自定义目录中为{C-c C-e'或'C-e'M-x rgrep并手动检查所有内容。