我的.emacs.d/
包含文件load-directory.el,顾名思义,它提供了函数load-directory(是的,它也包含语句(provide 'load-directory)
)。我想在启动时加载它,但语句(require 'load-directory)
会返回此错误:
File error: Cannot open load file, load-directory
出了什么问题? 提前谢谢。
答案 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 ...)
。)