好奇心的问题...
假设我有以下文件... ~/.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)
Run Code Online (Sandbox Code Playgroud)
请注意,所有文件都会对execute-extended-command. 当emacs打开时,这些文件中哪个会被执行?全部,其中之一,还是没有?是否有特殊的顺序先执行?另外,拥有多个初始化文件是不是一个坏主意?
任何涉及这些主题的答案以及任何附加信息都足够了,我只是想知道在这种情况下会发生什么。
从手册中:
\n\n\n49.4.4 Emacs 如何找到你的初始化文件
\n通常 Emacs 使用环境变量
\nHOME(参见HOME)来查找.emacs; 这就是 \xe2\x80\x98~\xe2\x80\x99 在文件名中的含义。如果.emacs在内部找不到~/(也不是.emacs.el),Emacs 会查找~/.emacs.d/init.el(与 一样~/.emacs.el,可以进行字节编译)。
所以~/.emacs.d/init.el只有在找不到其他两个的情况下才进行咨询。快速测试表明,当两者都可用时,~/.emacs.el优先于~/.emacs。
您应该选择这些位置之一并持续使用它。
\n我个人喜欢,~/.emacs.d/init.el因为 Emacs 将其他东西放在该目录中(例如custom.el,elpa/),并且许多 Emacs 包从该目录加载自己的配置文件。