加载elpa和init.el的顺序

时间:2012-10-30 07:24:54

标签: emacs24

我从https://github.com/technomancy/emacs-starter-kit取出了入门套件,它已安装在~/.emacs.d/elpa中。按照starter-kit.el的说明,我将用户特定的自定义设置在~/.emacs.d/$USER.el中:

(require 'color-theme-solarized)
(color-theme-solarized-dark)
(require 'auto-complete)
(global-auto-complete-mode)

但是当我开始使用emacs时,它说

File error: Cannot open load file, color-theme-solarized

我检查了load-path变量,发现color-theme-solarized的路径不在其中。所以我在“要求”它之前添加它:

 (add-to-list 'load-path "~/.emacs.d/elpa/color-theme-solarized-20120301)

然而,错误仍然存​​在。然后我提到了elpa的wiki,它说在加载init.el之后所有的包都被初始化了。然后我读了starter-kit.el,发现 $USER.el被添加到after-init-hook ,这意味着错误不应该发生在$USER.el之后在初始化结束时加载。我拼命地将我的所有自定义移到init.el的末尾,令我惊讶的是,它运行正常。似乎init.el最后加载而不是最初加载。 除了在init.el中书写之外,我怎样才能进行自定义工作?我不想让init.el太长。

ps:我已将(require 'package)(package-initialize)放在init.el的开头 它没有任何区别。

1 个答案:

答案 0 :(得分:1)

ELPA为您的包添加自动加载。我不使用主题,但通常会执行类似(eval-after-load "color-theme" (quote (color-theme-solarized)))的操作,或者,如果您希望它在刚刚自动加载(但未完全加载)之后运行,(eval-after-load "color-theme-autoloads" (quote (color-theme-solarized)))