Estoy usando emacs 24.4. He agregado una gran cantidad de paquetes instalados a través de la directiva Mx list-packages durante aproximadamente un año de uso. Me encantaría exportar mi lista de paquetes instalados para usar en otro lugar. Copiar mi .emacs me da algunos errores al iniciar, lo que activa mi memoria para instalar ciertas cosas. Sospecho que podría copiar el .emacs.d, pero parece una mala idea.
¿Existe algún procedimiento o directiva que pueda emitir para volcar la lista de paquetes instalados en un archivo que pueda usarse para llevarlos fácilmente a máquinas extranjeras?
.emacs.d
directorio (o preferiblemente ponerlo bajo control de versiones) generalmente es una buena idea. (También es razonable para cambiar el nombre~/.emacs
a~/.emacs.d/init.el
si decide hacerlo.)Respuestas:
El directorio
~/.emacs.d/elpa
contiene todos los paquetes instalados conlist-packages
. Puede copiar este directorio encima.Probablemente también ejecute algo como
(byte-recompile-directory "~/.emacs.d/elpa" 0 t)
(0
significa no preguntar,t
significa forzar recompilación) para compilar todo en bytes porque creo que hay cierta incompatibilidad de archivos compilados en bytes entre las versiones de Emacs.fuente
Eché un vistazo al
package.el
archivo y encontré la variablepackage-alist
. Esto parece ser una lista de todos los paquetes instalados, incluidos los paquetes requeridos por los paquetes que ha instalado.Si todo lo que desea es una lista de los nombres de paquetes instalados, el siguiente código escribirá los nombres de los paquetes de esta lista en el
*Messages*
búfer.No soy un programador de Lisp, así que estoy seguro de que alguien puede escribir una versión mucho mejor de este código.
También comencé a usar el código de paquete de uso con la
:ensure t
opción para instalar todos mis paquetes en una nueva PC.fuente
Una forma de hacerlo podría ser instalar el paquete si aún no está instalado, debe actualizar su archivo de inicio y agregar esas líneas:
Modifique la
my-packages
variable y agregue / elimine el paquete que desea instalar.M-x describe-variable package-activated-list
le dará la lista de su paquete actualmente instalado.Después de eso, lo único que puedes compartir es tu archivo de inicio. Espero que sea de ayuda.
fuente