Entiendo lo que hace la carga automática para las funciones (registrar el archivo para cargar cuando se llama a dicha función o se recupera su cadena de documentación). Sin embargo, no está claro cómo usar la función de carga automática junto con variables y macros.
Tengo dos preguntas:
¿Qué sucede cuando el paquete tiene un parámetro, implementado como una variable que el usuario puede establecer, pero no se carga automáticamente? ¿Deberían esas variables cargarse automáticamente? De lo contrario, resulta que tales variables no existen, el entorno Lisp no sabe nada de ellas, incluidos sus valores predeterminados, hasta que se utiliza alguna función de carga automática del paquete (generalmente después de cargar los archivos de configuración), entonces si el usuario las configura en su / su archivo de configuración, es como establecer una variable no existente. Si el valor de la variable es una lista no vacía y el usuario usa
push
oadd-to-list
para cambiar su valor, ¿qué sucede exactamente? ¿Se pierden los valores predeterminados?¿Qué sucede cuando una macro se carga automáticamente? ¿Cuándo deberíamos cargar automáticamente una macro?
setq
editar (es decir, no importa qué valores tengan antes) pueden tener un valor predeterminado especificado endefvar
o endefcustom
forma, pero en el caso de una lista que el usuario pueda extender, es mejor usarla,eval-after-load
¿verdad? Además, a veces los valores predeterminados buenos son buenos, incluso si toman la forma de una lista ;-)