繁体   English   中英

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

[英]Customize the list of packages that emacs-prelude provides

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

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

您可以将.el文件放在Prelude中的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建议使用

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM