¿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.