He estado usando GNU Emacs en Windows durante muchos años y para que funcione, siempre tuve que definir varias variables de entorno. He tenido estos definidos como variables del sistema todo este tiempo:
EMACS_DIR
` EMACSDATA
` EMACSDOC
` EMACSLOADPATH
` EMACSLOCKDIR
y EMACSPATH
.
Recientemente actualicé mi Emacs del puerto "NTEmacs" de 24.3 al puerto oficial de GNU de 26.1 y descubrí que los valores que estaba usando para estos eran incorrectos. Además, la versión actual puede detectar automáticamente todos menos la variable EMACSPATH.
Así que entré en el panel de control de variables de entorno, cambié EMACSPATH para señalar la ubicación de la nueva instalación y eliminé el resto. Emacs ahora funciona muy bien.
Pero descubrí que después de un cierre de sesión / inicio de sesión, todas las variables eliminadas están de vuelta y con los valores anteriores. Más precisamente, no están en el panel de control, pero si abro un símbolo del sistema y escribo set
, están allí y evitan que Emacs funcione. (Otras variables de entorno que he eliminado también vuelven, pero no interfieren con ninguna de mis aplicaciones, por lo que no me importa tanto).
Si modifico, agrego o elimino cualquier variable de entorno del sistema con el panel de control, el entorno se restablece para que coincida y Emacs funciona nuevamente hasta la próxima vez que cierre sesión o reinicie.
Claramente, estas variables de entorno se almacenan en caché en alguna parte, pero no tengo idea de dónde buscar para eliminarlas por completo.
Busqué en el registro con regedit y no pude encontrar ningún rastro de estas viejas variables. ¿Hay algún otro lugar donde debería estar buscando? Esto es claramente un error de Windows, pero no quiero tener que soportar esto por el tiempo que Microsoft necesite para solucionarlo.
Por supuesto, puedo obtener los valores que Emacs calcula y volver a crear las variables de entorno del sistema con estos valores, pero preferiría evitarlo a menos que no haya otra opción disponible.