.emacs.d是否属于load-path?

时间:2014-08-27 09:24:24

标签: emacs

我的.emacs.d/包含文件load-directory.el,顾名思义,它提供了函数load-directory(是的,它也包含语句(provide 'load-directory))。我想在启动时加载它,但语句(require 'load-directory)会返回此错误:

File error: Cannot open load file, load-directory

出了什么问题? 提前谢谢。

3 个答案:

答案 0 :(得分:5)

使用自定义Lisp扩展的子目录,例如~/.emacs.d/lisp/,并将此目录添加到load-path

(add-to-list 'load-path (locate-user-emacs-file "lisp/"))

~/.emacs.d/添加到load-path。有关详细信息,请参阅Disable warning about emacs.d in load path

答案 1 :(得分:1)

不,.emacs.d不属于加载路径。

来自docstring:

  

目录下面的其他每用户Emacs特定文件   放置。 Emacs中的各种程序将信息存储在此目录中。

所以这是一个自动写入文件的目录。因此它不应包含您自己的文件。这意味着,如果将其添加到您的加载路径中,您可能做错了。

警告有点误导。 AFAICT,问题不是加载路径本身,而是希望在该目录中使用自己的lisp文件,因为它们可能会被覆盖。

答案 2 :(得分:-2)

看起来load-directory.el不在您的加载路径中。如果是.emacs.d,请通过以下方式添加:

(add-to-list 'load-path "path/to/.emacs.d")                  ; note: no trailing /

如果load-directory.el本身包含您的所有load-path个自定义项,则可以使用require的第二个可选参数告诉它使用哪个文件名:

(require 'load-directory "path/to/directory/load-directory") ; note: no file extension needed

(以防万一:该文件中应该是(provide 'load-directory)而不是(provides ...)。)