En una situación en la que Emacs no se comporta como yo quiero, ¿qué puedo hacer para solucionar el problema? ¿Qué pasos puedo seguir para encontrar y solucionar el problema yo mismo?
O, en su defecto, ¿cómo puedo reunir información útil para que las personas aquí (o en la lista de correo u otros foros) puedan ayudarme con mi problema?
Mi Emacs incluye muchos paquetes, una colección de fragmentos copiados y pegados (o asesinados y arrancados) de todo Internet, y mi propio elisp personalizado, algunos de los cuales no recuerdo haber escrito, o ya no entiendo. ¿Hay alguna manera de dar sentido a todas estas complicaciones?
emacs -Q
como primer paso. Escribí esto como algo para vincular esas preguntas como ayuda genérica para nuevos usuarios.Respuestas:
Paso 1: corriendo
emacs -Q
Lo primero que debe hacer es ejecutar emacs sin ninguna de sus personalizaciones. Si puede reproducir el problema en Emacs vanilla, en realidad puede ser un error en Emacs. Eso es raro, pero lo descartamos como primer paso.
Si inicia Emacs desde la línea de comando con el
-Q
indicador, es decir,emacs -Q
obtendrá un emacs simple o 'vainilla', sin ninguna de sus personalizaciones locales cargadas. ¿Su problema todavía ocurre? Si es así, pase a "Proporcionar una receta de error".Paso 1b: ¿y si el problema es con un paquete?
Si su problema es específico de un paquete en particular, entonces obviamente no puede reproducirlo sin cargar ese paquete. Pero desea cargar solo el paquete en cuestión, no toda su configuración. Para hacerlo,
emacs -Q
vuelva a ejecutarlo y prepare un script corto como el siguiente:Reemplace
package1
con el nombre del paquete que desea cargar. Si necesita cargar varios paquetes, modifique el script en consecuencia:Para cargar este código, puede pegarlo en el
*scratch*
búfer y llamarM-x eval-buffer
. (¡o cualquier búfer, siempre que no tenga ningún otro código!).En este punto, ha cargado los paquetes y solo los paquetes que está probando. Si puede reproducir el problema ahora, salte a "Proporcionar una receta de error".
Paso 2: Encontrar un error en su
.emacs
Ahora ha confirmado que el problema proviene de algo en su configuración ("¡la llamada proviene del interior de la casa!"). Su configuración puede tener muchos miles de líneas y puede cargar muchos archivos diferentes. Para encontrar el problema, harás una búsqueda binaria, comentando la mitad del código a la vez para reducir las cosas. 1
emacs
, sin la-Q
opción.~/.emacs
o.emacs.d/init.el
, si no puede encontrarlo, intenteC-h v user-init-file
)C-space
para establecer la marca, desplácese hacia abajo hasta la mitad para extender la regiónM-;
y guarde el archivoemacs
(su prueba de emacs ), dejando los primeros emacs en ejecución. Test emacs leerá la versión reducida de su configuración.undo
el comentario conC-/
, y comentar la mitad del código restante. Abra un nuevo emacs de prueba e intente nuevamente.Si su problema es con un paquete específico, tendrá que dejar el código que carga ese paquete sin comentar, por supuesto.
Si su archivo de configuración carga otros archivos, puede terminar extendiendo su búsqueda también a esos archivos.
En este punto, es posible que haya encontrado que el problema se debe solo a una o dos líneas de código. Incluso puede arreglarlo usted mismo. Si es así, felicidades, ¡has aprendido algo! De lo contrario, avance al paso tres.
Paso 3: proporcionar una receta de error
En este punto, deberías poder proporcionar una receta de error detallada para publicar aquí. Debe incluir:
M-x emacs-version
Por ejemplo, podría publicar una pregunta como esta:
1 El paquete Bug Hunter puede ayudarlo con esto, (biseccionando semi-) automáticamente su archivo init.
fuente