我在此链接中看到 emacs prelude 如何确保在 emacs 启动时安装一组软件包。我想知道是否可以在prelude-packages
不更改文件的情况下以某种方式扩展变量以添加一些其他包prelude-packages.el
?
除非我想知道如何定义在启动时安装的软件包列表(如果当前未安装)。
我在此链接中看到 emacs prelude 如何确保在 emacs 启动时安装一组软件包。我想知道是否可以在prelude-packages
不更改文件的情况下以某种方式扩展变量以添加一些其他包prelude-packages.el
?
除非我想知道如何定义在启动时安装的软件包列表(如果当前未安装)。
您可以在 Prelude.el
的目录中放置一个文件。personal/
Prelude 按字母顺序加载它在其中找到的任何 .el 文件。以下是我的personal/00-packages.el
文件内容:
(require 'package)
(add-to-list 'package-archives
'("marmalade" .
"http://marmalade-repo.org/packages/"))
(package-initialize)
;; My packages
(setq prelude-packages (append '(
drupal-mode
nginx-mode
) prelude-packages))
;; Install my packages
(prelude-install-packages)
在文件名中添加“00”以确保在所有个人定制之前加载文件。将您需要的任何新包添加到要附加到的列表中prelude-packages
。
此外,如果您想使用 MELPA 或 Marmalade 中不可用的任何模式,您只需将模式的文件放到个人文件夹中,Prelude 就会在加载时将其拾取。如果对该模式有任何自定义,只需创建另一个 .el 文件并在其中添加 Emacs Lisp 代码。
(prelude-require-packages '(some-package some-other-package))
如果你有几个包。或者,如果您只想添加一个包:
(prelude-require-package 'some-package)
如果你愿意,你仍然可以在一个变量中维护你的包列表:
(setq my-packages '(drupal-mode nginx-mode toto-mode)
(prelude-require-package my-packages)
在您的 .emacs 文件中,您可以添加这样的代码(与您发送的链接中的代码非常相似)来检查每个包是否已安装,如果没有安装它:
(dolist (package '(eredis anything erlang elnode))
(unless (package-installed-p package)
(package-install package)))
在回答您的问题时,您没有理由在前奏代码运行后不能这样做。