2012-08-09 31 views
8

我在this link看到emacs序言如何確保在emacs啓動時安裝了一組軟件包。我想知道如果我能以某種方式擴展變量prelude-packages以添加一些其他軟件包,而不更改prelude-packages.el文件?自定義emacs-prelude提供的軟件包列表

除了我想知道如何定義在啓動時安裝的軟件包列表(如果它們當前未安裝的話)。

回答

5

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

在你的.emacs文件,你可以添加這樣的代碼(非常類似於您發送的鏈接代碼),以檢查是否安裝了每個包並安裝它,如果不是:

(dolist (package '(eredis anything erlang elnode)) 
    (unless (package-installed-p package) 
    (package-install package))) 

在回答對於你的問題,沒有理由在前奏代碼運行後無法做到這一點。

8

您可以在Prelude中的personal/目錄中放置一個.el文件。 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代碼即可。

相關問題