Domanda

Io uso Aquamacs, e io uso ELPA che installa i file in ~ / .emacs.d / ELPA?

Qual è la magia dietro questo ELPA? Voglio dire, senza ELPA, devo scaricare e installare i pacchetti in una directory specifica, e aggiungere queste due linee in .emacs.

  

(add-to-list 'load-path "PACKAGE_DIRECTORY")
  (Require 'PACCHETTO)

Ma, con ELPA, non vedo nulla di aggiunto alla .emacs o / Users / smcho / Library / Preferences / Aquamacs Emacs / {Preferences.el, customizations.el}. Com'è possibile?

Aggiunto

Questo è quello che ho trovato con Aquamacs.

  1. Aquamacs legge ~ / Preferenze / Aquamacs Emacs / Preferenze, e ha "(add-to-list 'load-path kitfiles-dir) (richiede' init)", che recita iniziare kit.
  2. L'init.el di kit di avvio ha la "(Package, è necessario ') (pacchetto-initialize)"
  3. ~ / Library / Preferences / Aquamacs Emacs / Aquamacs-emacs-starter-kit / fornitore ha la package.el

Credo che i file di inizializzazione non sono cambiati, ma il gestore dei pacchetti legge il ~ / .emacs.d / elpd / * per inizializzare automaticamente, per come la vedo *** -. Autoloads.el in ognuno di esso

Added2

Con Emacs 24, sembra che il pacchetto è pre-costruito. Ho solo bisogno di avere queste linee in .emacs o .emacs.d / init.el per ottenere lavoro ELPA. Suggerimenti da questo sito .

(require 'package)
(add-to-list 'package-archives
         '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

(when (not package-archive-contents)
  (package-refresh-contents))
(defvar my-packages '(clojure-mode
               nrepl))
(dolist (p my-packages)
  (when (not (package-installed-p p))
    (package-install p)))
È stato utile?

Soluzione

(package-initialize) passerà attraverso tutti i pacchetti installati (in ~/.emacs.d/elpa/ o simili, a seconda della configurazione), e aggiungerli al percorso di carico. Uno è stato eseguito esso, dare un'occhiata a load-path ( C-h v load-path), avrà tutte le sottodirectory aggiunto. Quindi a questo punto, il caricamento del file userà i meccanismi normali.

Altri suggerimenti

Hai un (require 'package) (package-initialize) coppia da qualche parte nei file di inizializzazione. Package.el fa la magia:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top