5

我的“~/.emacs.d”目录中有几个 .el 文件,我在 .emacs 文件中添加了以下几行,以便在启动时加载它们:

(let ((base "~/.emacs.d/")
      (files '("user.el" "erlang.el" "sbcl-slime.el"))
      (bfload (lambda (file) (load (expand-file-name (concat base file))))))
   (mapcar bfload files))

它有效,但这是正确的 Emacs Lisp 风格吗?请问这个怎么改善?

4

3 回答 3

12

首先,不要将您的 .el 文件直接放入 ~/.emacs.d (Emacs 会在其中放置各种文件,并且它们不应该是 Elisp 包)。您可以将它们放入~/.emacs.d/pkgs例如,而不是。

怎么样:

(dolist (file '("user.el" "erlang.el" "sbcl-slime.el"))
  (load (expand-file-name file "~/.emacs.d/pkgs"))
于 2013-06-22T15:45:00.433 回答
2

您可以将 Stefan 将这些文件移动到单独目录的出色建议与 init-loader https://github.com/emacs-jp/init-loader混合使用

您将获得一些额外的好处(自动字节编译文件)并且您不需要维护文件列表(只需在该目录中移动/创建一个文件)。

于 2013-06-24T12:26:17.230 回答
1

基于 Stefan 的示例,我只添加了一个file-exists-p

(dolist (file '("user.el" "erlang.el" "sbcl-slime.el"))
  (let ((f (expand-file-name file "~/.emacs.d/pkgs")))
    (if (file-exists-p f)
      (load f))))

我想,这是我将使用的版本。

于 2013-06-24T19:54:33.557 回答