Soy consciente de C-x C-e
cuál es eval-last-sexp
y M-x eval-buffer
, pero estos no siempre son suficientes para recoger todos los cambios. A veces necesita cerrar realmente los búferes que están en los modos a los que se les ha cambiado su configuración, y otras veces necesita reiniciar completamente emacs. ¿Hay una forma más general de manejar este problema? Alternativamente, ¿hay alguna manera de reiniciar emacs sin perder los búferes abiertos existentes y el historial interactivo?
27
Respuestas:
No, no es posible volver a cargar la configuración modificada y hacer que Emacs se comporte como si esas modificaciones ya estuvieran en su lugar cuando se cargó Emacs. En resumen, los paquetes de Emacs tienen demasiada libertad para que esto sea factible.
Usted menciona que algunos modos principales no recogen los cambios de configuración. Una razón probable para esto es que habilitar el modo establece algunas variables locales de búfer basadas en los valores actuales de ciertas opciones. Sin volver a habilitar dicho modo en cada búfer que lo usa, no se recogerán todos los cambios. Y aun así, es muy posible que algunas cosas permanezcan sin cambios. Las probabilidades de que esto funcione son mayores cuando las opciones se personalizan mediante un
custom-set-variables
formulario, pero esto debe implementarse explícitamente para todas y cada una de las opciones. Y hasta ahora solo hemos hablado sobre los modos principales y sus opciones ...Podría intentar implementar un comando para volver a habilitar el modo principal de cada búfer. Pero es poco probable que habilite completamente todos los cambios y, lo que es peor, deshabilite todos los modos menores que haya habilitado manualmente y pierda todo tipo de otro estado.
Por esa razón, incluso recomendaría no
eval-buffer
utilizar su archivo de inicio para recoger tantos cambios como sea posible. Evalúe las configuraciones cambiadas individualmente usandoeval-last-sexp
y si eso no funciona, entonces debe reiniciar Emacs.Cómo se puede preservar el estado cuando Emacs está cerrado es una pregunta diferente que debe hacerse por separado.
fuente
Llamar
normal-mode
es una forma útil de volver a activar todos los modos para un búfer dado, si ha realizado cambios en esos o sus ganchos asociados.También puede usar
revert-buffer
(que llamanormal-mode
), que es como volver a cargar el archivo sin descartar el historial de deshacer.(También puede volver a cargar un archivo con C-xC-v, pero que va a descartar su historial de deshacer.)
En M-x
ibuffer
escribir en mayúsculas Vrevierte Todos los tampones marcados, mientras que en mayúsculas Ey Wque permitirá evaluar elisp arbitrario para todos los tampones marcados.fuente