添加到列表的加载路径似乎不起作用

时间:2011-08-02 17:19:55

标签: emacs dot-emacs load-path

每当我看到一些emacs软件包的安装说明时,总是建议使用add-to-list 'load-path它永远不适合我。出于某种原因,我必须使用load-file。例如,这不起作用:

(add-to-list 'load-path "~/.emacs.d/jade-mode")
(require 'sws-mode)
(require 'jade-mode)    
(add-to-list 'auto-mode-alist '("\\.styl$" . sws-mode))
(add-to-list 'auto-mode-alist '("\\.jade$" . sws-mode))

但这会奏效:

(load-file "~/.emacs.d/jade-mode/sws-mode.el")
(load-file "~/.emacs.d/jade-mode/jade-mode.el")
(require 'sws-mode)
(require 'jade-mode)    

任何人都可以告诉我为什么? 编辑:我在MAC OS X 10.5上使用Carbon Emacs

3 个答案:

答案 0 :(得分:10)

问题可能是当require搜索load-path列表中的条目时,不会展开前导代字号('〜')。请考虑使用the expand-file-name functionrequire

后续使用准备您的条目
(add-to-list 'load-path (expand-file-name "jademode" "~/.emacs.d"))

(add-to-list 'load-path (expand-file-name "~/.emacs.d/jademode"))

了解您在哪个操作系统上使用的Emacs会有所帮助。

答案 1 :(得分:1)

我不是100%肯定但我猜这个列表没有实例化,因此你不能在加载路径列表中添加任何东西,我只是用

实例化列表
    (setq load-path (cons (expand-file-name "~/.emacs.d/lisp")
              load-path))

答案 2 :(得分:0)

第一个答案对我没有用。添加目录路径,而不是单独的.el文件,对我有用,即:

(add-to-list 'load-path (expand-file-name "~/.emacs.d"))