我需要一些帮助来理解Emacs初始化和加载路径变量构造。 因此,$ HOME中的init文件.emacs(或.emacs.d / init.el)文件首先被加载,并且在此文件即将被读取时,load-path已包含来自/的目录等,/ usr / *,例如来自Emacs发行版本身的目录。
加载init文件后是否有任何标准的Emacs初始化文件,它们扫描.emacs.d并添加它在那里找到的子目录?
Emacs手册在第一个Emacs初始化步骤(https://www.gnu.org/software/emacs/manual/html_node/elisp/Startup-Summary.html#Startup-Summary)中说了一些关于subdirs.el的内容,但它在加载init文件之前发生了,我不明白使用的语言:
- 通过在列表中的每个目录中运行名为subdirs.el的文件,将子目录添加到load-path。
醇>
"列表" ?
答案 0 :(得分:2)
在此步骤"列表"实际上是load-path
中预加载的安装值。其余的要点在所执行的步骤中是明确的。例如,一些Debian / Ubuntu发行版在/etc/emacsXX
中添加了一些系统范围的配置文件,当他将包编译为load-path
中的一些初始路径时,这在源代码中是硬编码的。 / p>
答案 1 :(得分:1)
加载init文件后是否有任何标准的Emacs初始化文件,它们扫描.emacs.d并添加它在那里找到的子目录?
一般来说,没有 - Emacs不会自动将任意子目录添加到load-path
(您也不希望它)。
然而,某些特定的子目录会发生这种情况。
从Emacs 24开始,内置包管理器将在评估完init文件后自动将已安装的ELPA包目录添加到load-path
。
(And/or when package-initialize
is called explicitly,如果你这样做。)
默认情况下,您的ELPA套餐位于~/.emacs.d/elpa/