Una vez que se hayan actualizado los paquetes, la ubicación de los archivos elisp cargados cambiará para estar en la carpeta de la nueva versión del paquete.
Yasnippet intenta cargar fragmentos perezosamente para el archivo en el que se instaló, cuando abro un archivo en un modo principal que no ha visto antes.
Esto significa que la carga de cosas con modos principales nunca antes vistos una vez que se ha actualizado emacs falla, porque yasnippet lo rompe todo al quejarse de "ningún archivo o directorio".
¿Hay una buena forma general de resolver esto, como no permitir que las actualizaciones rompan las cosas? (Tengo un problema similar pero menos tedioso cuando ag se actualiza). Alternativamente, ¿recomendaría algo en yasnippet para simplemente tragar los errores, de modo que simplemente advierta en lugar de generar errores cuando no puede cargar paquetes, sería un mejor plan?
Aclaración:
- Comienzo emacs y se carga yasnippet.
- No cargo archivos cuyo modo principal es (por ejemplo) makefiles.
- Actualizo a una nueva versión de yasnippet, usando el administrador de paquetes
- Cargo un archivo MAKE, y yasnippet intenta cargar los fragmentos para archivos MAKE pero falla, porque la carpeta que estaba usando para fragmentos ya no existe. No solo eso, sino que prácticamente todos los demás comandos fallan, porque falla el enganche previo a ellos que instaló yasnippet.
- Solución alternativa: abra el búfer de mensajes, busque qué carpeta no se puede abrir y ejecutar
mkdir ~/.blargh/folder-yasnippet-wants
.
Claramente, uno podría escribir algunos consejos para un poco de yasnippet, pero espero una solución más global (y tomaría un tiempo jugar con elisp para que los consejos funcionen, estoy seguro).
package.el
trabajar sin problemas y probablemente estés buscando una solución en relación con esto. Personalmente, me pego cuando las cosas se rompen, por lo que reduzco la probabilidad de rotura al colocar las bibliotecas en una ubicación completamente diferente; en algunos casos, incluso cambio todos los nombres agregando un prefijo en la biblioteca, por ejemplo, de lawlist-...
esa manera, nada se rompe excepto una función modificada por el equipo de Emacs, por ejemplo, un nuevo argumento para una función existente, etc. Copié yasnippet.el
en otro lugar, lo eliminé del administrador de paquetes y nunca me preocupé por eso.