Emacs: load-path和require(不能打开加载文件)



我在(require 'org-mime)"Cannot open load file"错误,而load-path变量似乎是正确的:

load-path is a variable defined in `C source code'.
Its value is
("/home/alexey/.emacs.d/elpa/bbdb-20130526.1945" "/home/alexey/.emacs.d/elpa/org-mime-20120112" "/home/alexey/.emacs.d/elpa/smex-20130421.2153" "/usr/share/emacs/24.3/site-lisp" "/usr/share/emacs/site-lisp" "/usr/share/emacs/24.3/lisp
...

奇怪的是,补救措施看起来像这样(.emacs):

(add-to-list 'load-path "~/.emacs.d/elpa/org-mime-20120112")

它不仅仅是丑陋的:它是不正常的,因为版本化的路径是可以改变的。但是为什么会出现错误呢?

当您加载一个需要另一个文件的文件时,会发生一个有趣的问题——所需的文件必须按时间顺序在下一个文件之前加载。例如,如果B需要A,那么A必须按时间顺序排在前面,这样当B加载时,A已经加载了。

我在这种类型的设置上真的很幸运。大多数文件以el或elc结尾,所以我不确定为什么要加载具有不同扩展名或没有扩展名的文件,但是如果您想要这样做当然是可能的。

(let* ((root.d "~/") (sub-dir (concat root.d ".emacs.d/")))
    (load-file (concat sub-dir "init.el"))
    (setq load-path
(append `(,root.d ,sub-dir
    ,(concat sub-dir "elpa/yasnippet")
) load-path)))

最新更新