自定义emacs-prelude提供的包列表

时间:2012-08-09 00:40:41

标签: emacs elisp emacs-prelude

我在this link看到emacs前奏如何确保在emacs启动时安装了一组软件包。我想知道我是否可以以某种方式扩展变量prelude-packages以添加其他一些包而不更改prelude-packages.el文件?

除非我想知道如何定义启动时安装的软件包列表(如果它们当前未安装)。

3 个答案:

答案 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 recommends使用

(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)))

在回答你的问题后,没有理由在前奏代码运行后你不能这样做。