Cuando estoy escribiendo un nuevo paquete, es genial que pueda probar su instalación simplemente emitiendo M-x package-install-from-buffer
. Esto instalará el paquete con package.el
, de modo que quede debajo
"~/.emacs.d/elpa"
. Sin embargo, esto no funciona en paquetes de múltiples archivos.
¿Cuál es el procedimiento para instalar todos los .el
archivos en el directorio actual como un paquete multifile único?
fuente
-pkg.el
archivo opcional es interesante. ¿Qué valores predeterminados tienen en ese caso?package-install-file
no menciona que funcione para directorios (aunque, como usted ha dicho, lo hace).package-install-from-buffer
dice:¿Entonces se supone que puede archivar el directorio (suponiendo que cumpla con los criterios), cargar el archivo tar en Emacs y usarlo
package-install-from-buffer
como antes?Editar: O, como señala lunaryorn, no visite el archivo en Emacs y úselo
package-install-file
.fuente
M-x package-install-file
.paradox/paradox-pkg.el
archivo dentrotar
y errores cuando no lo hace. Lo mismo para ambosinstall-file
yinstall-from-buffer
. Supongo que necesito crear este-pkg
archivo como una especie de receta.-pkg
archivo, de lo contrario no es un paquete válido, por lo que simplemente no funcionará el tar'ing un directorio aleatorio. Emacs debe tener un lugar para buscar los metadatos del paquete después de todo. Puede usar MELPApackage-build
ocask
crear paquetes TAR adecuados desde un árbol de directorios.C-h i g (elisp) Multi-file Packages
para más detalles.package.el
no tiene buen soporte para este caso de uso. Tiene que volver a ejecutarpackage-install-from-buffer
cada vez que realiza una actualización del paquete, y tambiénM-x find-function
y los amigos no saltarán al código fuente, sino a la copia que sepackage.el
incluye~/.emacs.d/elpa
. Como consecuencia, recomendaría no usarpackage.el
para este caso de uso (o en absoluto, ya que tiene una serie de otros problemas).En cambio, puede probar mi administrador de paquetes
straight.el
, que está diseñado explícitamente para este caso de uso. Constraight.el
, no hay un procedimiento de "instalación local". Simplemente coloque su repositorio~/.emacs.d/straight/repos/<my-package-repo>
y luego cargue el paquete en su archivo init:Cada vez que realiza un cambio en el código fuente, la generación de carga automática y la compilación de bytes se rehace (una vez que reinicia Emacs). Además, está ejecutando directamente desde el repositorio de Git, por lo que los
M-x find-function
amigos trabajarán como se esperaba.Finalmente, las versiones local y ascendente son completamente intercambiables.
straight.el
le permite realizar los cambios locales que desee, y se tratan tan sagrados como los cambios ascendentes (aunquestraight.el
le permite revertir automáticamente [e interactivamente] sus repositorios a sus versiones ascendentes, si lo desea). Por lo tanto, no hay que preocuparse por realizar cambios en su configuración si desea realizar un desarrollo local: simplemente realice el desarrollo local. Y si tiene un paquete privado que publica, es trivial: simplemente empuje ese paquete en algún lugar (y probablemente actualice la receta en su archivo init para apuntar a ese repositorio Git, para questraight.el
pueda volver a clonarlo desde una máquina diferente).A diferencia de
package.el
, no hay diferencia en el tratamiento de los paquetes de varios archivos y de un solo archivo.Para obtener documentación detallada sobre
straight.el
, incluidas las comparaciones con otros gestores de paquetes, consulte el archivo README .fuente