我发现根据编辑的文件类型自动加载适当的编辑模式更方便。有很多方法可以做到这一点,但我通常会在自动加载列表中添加一个条目:(and (library-loadable-p "python-mode")
(setq auto-mode-alist (append '(
("\\.py\\'" . python-mode)
)
auto-mode-alist)))
对于我喜欢使用的各种模式,我有一个长长的列表。如果未安装python模式(或任何其他模式),它将以静默方式失败。如果我在没有安装模式的ISP服务器上运行,我会将~/lib/elisp添加到加载路径,并将丢失的.el文件放在其中。
library-loadable-p来自一个朋友,它只是测试文件是否位于加载路径中的某个位置:(defun library-loadable-p (lib &optional nosuffix)
"Return t if library LIB is found in load-path.
Optional NOSUFFIX means don't try appending standard .elc and .el suffixes."
(let ((path load-path)
elt)
(catch 'lib-found
(while (car path)
(setq elt (car path))
(and
(if nosuffix
(file-exists-p (concat elt "/" lib))
(or (file-exists-p (concat elt "/" lib ".elc"))
(file-exists-p (concat elt "/" lib ".el"))
(file-exists-p (concat elt "/" lib))))
(throw 'lib-found t))
(setq path (cdr path))))))