0

我在加载路径变量似乎没问题时遇到"Cannot open load file"错误:(require 'org-mime)

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")

它不仅仅是丑陋的:它是功能失调的,因为版本化的路径可能会发生变化。但为什么会出错?

4

1 回答 1

0

当您加载需要另一个文件的文件时,会发生一个有趣的问题——需要的文件必须在下一个文件之前按时间顺序加载。例如,如果 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)))
于 2013-05-27T06:58:18.010 回答