11

每当我看到一些 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

4

3 回答 3

13

require问题可能是在搜索列表中的条目时,前导波浪号 ('~') 没有展开load-path。考虑使用expand-file-name函数来准备您的条目以供后续使用require

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

或者

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

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

于 2011-08-02T17:39:55.183 回答
1

我不是 100% 确定,但我猜该列表没有被实例化,因此你不能向加载路径列表添加任何东西,我只是用

    (setq load-path (cons (expand-file-name "~/.emacs.d/lisp")
              load-path))
于 2011-08-02T17:46:07.650 回答
0

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

(add-to-list 'load-path (expand-file-name "~/.emacs.d"))
于 2014-11-24T20:16:34.090 回答