Cuando hay un error en uno de mis archivos init, recibo un mensaje vago como este cuando ejecuto Emacs:
Warning (initialization): An error occurred while loading /Users/im/.emacs.d/init.elc:
(wrong-type-argument listp helm-find-files-actions)
No me dice cuál de mis muchos archivos de configuración contiene el error o qué línea. Buscar mis archivos no ayuda porque, adivina qué, la función en helm-find-files-actions
realidad no aparece en ninguno de mis archivos init. Para rastrear la línea de código ofensiva, tengo que hacer $ emacs --debug-init
.
¿No hay forma de que Emacs me diga automáticamente dónde está la línea ofensiva sin tener que abandonar y correr $ emacs --debug-init
? Sé que puedo bisecar + evaluar los archivos manualmente, pero eso es aún más lento. Sería mucho mejor si, cuando hay un error en uno de mis archivos de inicio, Emacs podría:
- dime qué archivo de inicio
- dime el número de línea que contiene el error
- idealmente, abra ese archivo de inicio y lléveme a la línea ofensiva
¿Es esto posible con Emacs, o estoy viviendo en un mundo de fantasía?
debug-init
automáticamente para el siguiente arranque siempre que cambie su archivo de inicio ...
--debug-init
:)
--debug-init
de forma predeterminada?
(setq debug-on-error t)
y luego evaluar suinit.el
nuevo, por ejemplo, ábralo y escribaM-x eval-buffer
.