2012-08-09 12 views
8

Vedo a this link come preludio emacs assicura che una serie di pacchetti sia installata quando viene avviato emacs. Mi chiedevo se avrei potuto in qualche modo estendere la variabile prelude-packages per aggiungere altri pacchetti, senza modificare il file prelude-packages.el?Personalizza l'elenco di pacchetti che emacs-prelude fornisce

Tranne che mi chiedevo come definire un elenco di pacchetti che vengono installati all'avvio se non sono attualmente installati.

risposta

5

Prelude recommends utilizzare

(prelude-require-packages '(some-package some-other-package)) 

se si dispone di vari il pacchetto. O nel caso in cui si desidera aggiungere un solo pacchetto:

(prelude-require-package 'some-package) 

Se si vuole si può ancora mantenere la lista dei pacchetti in una variabile:

(setq my-packages '(drupal-mode nginx-mode toto-mode) 
(prelude-require-package my-packages) 
1

Nel vostro .emacs si potrebbe aggiungere codice come questo (molto simile al codice nel link che hai inviato) per verificare se è installato ogni pacchetto e installarlo se non è:

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

In risposta alla tua domanda non c'è ragione per cui tu non possa farlo dopo che il codice prelude è stato eseguito.

8

È possibile inserire un file in Prelude. Prelude carica qualsiasi file .el che trova lì in ordine alfabetico. Di seguito è riportato il contenuto del mio file di 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" viene aggiunto al nome del file per assicurarsi che il file viene caricato prima di tutte le personalizzazioni personali. Aggiungi qualsiasi nuovo pacchetto necessario all'elenco che viene aggiunto a prelude-packages.

Inoltre, se si desidera utilizzare qualsiasi modalità non disponibile in MELPA o Marmalade, è sufficiente rilasciare il file della modalità nella cartella personale e Prelude lo preleva durante il caricamento. Se ci sono personalizzazioni per quella modalità, è sufficiente creare un altro file .el e aggiungere il codice Lisp Emacs lì.