Pregunta

Yo uso Aquamacs, y utilizo ELPA que instala archivos en ~ / .emacs.d / elpa?

¿Cuál es la magia detrás de esta ELPA? Es decir, sin ELPA, debería descargar e instalar los paquetes en un directorio específico, y añadir estas dos líneas en .emacs.

  

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

Sin embargo, con el ELPA, no veo nada añadido a .emacs o / Usuarios / smcho / Librería / Preferencias / Aquamacs Emacs / {Preferences.el, customizations.el}. ¿Cómo es esto posible?

añadido

Esto es lo que he encontrado con Aquamacs.

  1. Aquamacs lee ~ / Preferencia / Aquamacs Emacs / Preferencia, y que tiene "(add-to-list 'kitfiles-dir load-path) (require' init)", cuyo texto es empezar kit.
  2. El init.el del kit de inicio tiene la "(paquete de requerir ') (paquete-initialize)"
  3. ~ / Library / Preferences / Aquamacs Emacs / Aquamacs-emacs-paquete de inicio / vendedor tiene la package.el

Creo que los archivos de inicialización no se cambian, pero el gestor de paquetes lee el ~ / .emacs.d / ELPD / * inicializar automáticamente, como lo veo. *** - autoloads.el en cada una de ella

Added2

Con Emacs 24, parece que el paquete está pre-construido. Sólo necesita tener estas líneas en .emacs o .emacs.d / init.el para conseguir trabajo ELPA. Consejos de este sitio .

(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)))
¿Fue útil?

Solución

(package-initialize) pasará a través de todos los paquetes instalados (en ~/.emacs.d/elpa/ o similares, dependiendo de la configuración), y añadirlos a la trayectoria de carga. Uno que ha ejecutarlo, echar un vistazo a load-path ( C-h v load-path), que tendrá todos esos subdirectorios añaden. Así que en este punto, la carga de archivos utilizará los mecanismos normales.

Otros consejos

Usted tiene un par (require 'package) (package-initialize) algún lugar en los archivos de inicialización. Package.el hace la magia:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top