当有多个 emacs init 文件时会发生什么?

Bol*_*boa 1 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)
Run Code Online (Sandbox Code Playgroud)

请注意,所有文件都会对execute-extended-command. 当emacs打开时,这些文件中哪个会被执行?全部,其中之一,还是没有?是否有特殊的顺序先执行?另外,拥有多个初始化文件是不是一个坏主意?

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

Chr*_*ris 5

手册中:

\n
\n

49.4.4 Emacs 如何找到你的初始化文件

\n

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

\n
\n

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

\n

您应该选择这些位置之一并持续使用它。

\n

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

\n