每当我看到一些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
答案 0 :(得分:10)
问题可能是当require
搜索load-path
列表中的条目时,不会展开前导代字号('〜')。请考虑使用the expand-file-name
function为require
(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"))