Son diferentes si el paquete se difiere, es decir, no se carga hasta que se necesita. En ese caso :init
, se ejecutará en el momento en que se lea por primera vez su archivo emacs, pero :config
se ejecutará en el momento en que se cargue realmente el paquete.
En su ejemplo, el uso de mode
implícitamente difiere la carga del paquete. Ha configurado el paquete para que se cargue la primera vez que se visita un archivo html.
Puede usar :demand
para asegurarse de que el paquete siempre se carga al inicio, pero lo más probable es que lo que quiera hacer aquí sea conectarlo :init
.
Desde la cadena de documentación:
:init Code to run when `use-package' form evals.
Como está poniendo esto en su archivo de inicio de usuario, eso básicamente significa que se ejecutará al inicio.
:config Runs if and when package loads.
Por lo tanto, no se ejecute hasta que el paquete se esté cargando.
:defer Defer loading of package -- automatic if :commands, :bind, :bind*, :mode or :interpreter are used.
Tenga en cuenta la lista de cosas que automáticamente hacen diferido un paquete. Básicamente, si indica use-package
las condiciones en las que necesita este paquete, se supone que no desea cargarlo hasta que surjan esas condiciones.
:demand Prevent deferred loading in all cases.
Asegúrese de que el paquete se cargue al inicio, independientemente de las otras opciones que haya especificado.
Actualizar
Revisando esto basado en los comentarios recientes ... Lo que dije arriba es cierto, pero no creo que responda correctamente la pregunta. El problema raíz aquí es en realidad que html-mode
no es un paquete, sino un modo definido por el paquete sgml-mode
. Esto funciona como se esperaba para mí:
(use-package sgml-mode
:mode ("\\.html\\'" . html-mode)
:config (add-hook 'html-mode-hook 'turn-off-auto-fill))
En el ejemplo original, la :config
expresión nunca se evalúa porque un paquete llamado html-mode
nunca se carga. Mover la misma expresión a :init
funciona porque el código de inicio siempre se evalúa, independientemente de si el paquete se carga alguna vez.