加载elpa和init.el的顺序

xyg*_*guo 5 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)
Run Code Online (Sandbox Code Playgroud)

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

File error: Cannot open load file, color-theme-solarized
Run Code Online (Sandbox Code Playgroud)

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

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

然而,错误仍然存​​在.然后我提到了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 ,并没有发挥作用.

unh*_*mer 1

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