emacs reloading major-mode

¿Cómo recargar un modo mayor de emacs?



reloading major-mode (3)

Cuando edite la fuente de un modo, debe asegurarse de evaluar las funciones que cambia; guardarlas solo en el archivo no será suficiente, ya que internamente Emacs todavía usará el código antiguo.

Por ejemplo, puede saltar al final de la definición de función en la que trabaja con MCe y evaluar la función con Cx Ce. A partir de ese momento, Emacs utilizará la definición actual.

Esto también funciona para la definición de modo, pero a menudo la invocación de un modo con Mx mode-name se implementa como un interruptor: lo llamas una vez, lo activa, lo vuelves a llamar, lo desactiva. Así que es posible que tengas que hacer Mx mode-name dos veces.

Tengo un búfer en algún modo mayor, y en otro búfer el propio archivo de modo (* .el). Después de editar el archivo * .el, quiero ver los cambios reflejados en el primer búfer, sin reiniciar emacs. Intenté ejecutar la función -mode pero no cambió el búfer. Gracias


Si su modo proporciona una función (¡como debería!) Usando (provide ''foo-mode) entonces puede

Mx función de descarga RET foo-mode RET

y luego vuelva a cargar el modo como de costumbre (usando foo-mode si tiene una carga automática apropiada, o si usa load-library load-file o load-file otra manera).


M-x load-file your-mode.el

o

M-x eval-buffer

Luego, activa y desactiva el comportamiento en el búfer, probablemente haciendo

M-x your-mode M-x your-mode

O, si tu modo reconoce el argumento prefijo

C-u 1 M-x your-mode

Nota: cuando está cargando un archivo, defvar no anula los valores existentes, por lo tanto, si cambia los valores en la llamada a defvar , deberá evaluarlos específicamente, ya sea haciendo CMx cuando el cursor está en el devfar expresión, o utilizando Mx: y escribiendo en la expresión. Consulte esta página para obtener documentación sobre la evaluación de lisp en Emacs.