好奇心问题......
我们假设我有以下文件...... ~/.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文件是个坏主意吗?
任何接触这些主题的答案,以及任何其他信息都足够了,我只是想知道在这种情况下会发生什么。
答案 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.el
,elpa/
),许多Emacs包从该目录加载自己的配置文件。