当有多个emacs初始化文件时会发生什么?

时间:2015-01-10 20:02:09

标签: emacs init

好奇心问题......

我们假设我有以下文件...... ~/.emacs~/.emacs.d/init.el~/.emacs.el

现在,假设每个代码都包含单独的代码段,例如:

~/.emacs
(global-set-key (kbd "<f8>") 'execute-extended-command)

~/.emacs.d/init.el
(global-set-key (kbd "<apps>") 'execute-extended-command)

~/.emacs.el
(global-set-key (kbd "<menu>") 'execute-extended-command)

请注意,所有文件都会对execute-extended-command进行单独更改。打开emacs时,将执行以下哪些文件?所有这些,其中之一,还是没有?是否有特殊订单首先执行?另外,拥有多个init文件是个坏主意吗?

任何接触这些主题的答案,以及任何其他信息都足够了,我只是想知道在这种情况下会发生什么。

1 个答案:

答案 0 :(得分:3)

来自the manual

  

49.4.4 Emacs如何查找您的初始化文件

     

通常,Emacs使用环境变量HOME(参见HOME)来查找.emacs;这就是'〜'在文件名中的含义。如果在.emacs(也不是~/)中找不到.emacs.el,则Emacs会查找~/.emacs.d/init.el(与~/.emacs.el一样,可以进行字节编译)。< / p>

所以只有在找不到其他两个时才会咨询~/.emacs.d/init.el。快速测试表明,当两者都可用时,~/.emacs.el优先于~/.emacs

您应该选择其中一个位置并一致地使用它。

我个人喜欢~/.emacs.d/init.el因为Emacs将其他内容放在该目录中(例如custom.elelpa/),许多Emacs包从该目录加载自己的配置文件。