【问题标题】:What happens when there are multiple emacs init files? [duplicate]当有多个 emacs 初始化文件时会发生什么? [复制]
【发布时间】:2015-03-08 23:00:21
【问题描述】:

好奇的问题...

假设我有以下文件...~/.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 文件是不是一个坏主意?

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

【问题讨论】:

  • 为什么不试试呢?在每个文件中放置不同的(消息“文件 X 已加载”)命令,并在启动 Emacs 后查看 *Messages* 缓冲区。
  • 不知道为什么这被认为是重复的......问题完全不同,我知道,因为我问过他们两个:P
  • @Drew 你能解释一下你为什么标记它吗?
  • 这些问题看起来可能略有不同,但它们本质上是相同的。答案是完全一样的:Emacs 在哪里寻找一个 init 文件——它的位置和顺序(以及如何向 Emacs 询问这些信息)。
  • 问题完全不同,因此用户可以从找到相同答案的两种方式中受益...为什么不添加并接受解释答案与(链接问题)相同的答案。

标签: emacs init


【解决方案1】:

来自the manual

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多