我在this link看到emacs前奏如何确保在emacs启动时安装了一组软件包。我想知道我是否可以以某种方式扩展变量prelude-packages
以添加其他一些包而不更改prelude-packages.el
文件?
除非我想知道如何定义启动时安装的软件包列表(如果它们当前未安装)。
答案 0 :(得分:8)
您可以在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代码。
答案 1 :(得分:6)
(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)
答案 2 :(得分:1)
在您的.emacs文件中,您可以添加这样的代码(非常类似于您发送的链接中的代码),以检查是否已安装每个软件包,如果不是,则安装它:
(dolist (package '(eredis anything erlang elnode))
(unless (package-installed-p package)
(package-install package)))
在回答你的问题后,没有理由在前奏代码运行后你不能这样做。