2011-08-26 18 views
13

Ya se ha formulado una pregunta how to reload a .emacs file after changing it.Recargar .emacs para todos los búferes activos

Las soluciones propuestas fueron utilizar M-x load-file o M-x eval-region RET en la región modificada.

Ninguna de estas soluciones afecta a otros búfers abiertos para mí. ¿Hay alguna forma de volver a cargar el archivo .emacs para todos los búferes abiertos?

También debo tener en cuenta que el M-x load-file no tiene el efecto deseado por los motivos descritos en los comentarios al that answer.

Respuesta

18

Su archivo .emacs es una configuración global que se evalúa una sola vez. No se aplica a cada memoria tampón individualmente.

La forma en que logre lo que realmente quiere dependerá realmente de los cambios que se produzcan .emacs. Algunos elisp solo tendrán efecto la primera vez que se evalúe; o cuando un buffer cambia los modos principales; o cuando se carga un archivo; etc, etc ...

Si desea volver a cargar algunos o todos los archivos de memoria intermedia, ibuffer hace que bastante fácil:

  • MxibufferRET para iniciar ibuffer (recomiendo esta unión a CxCb).
  • /f.RET para filtrar por nombre de archivo regexp . para que coincida con cualquier nombre de archivo.
  • m (en [default]) para marcar todos los búfers filtrados.
  • V (mayúscula) para revertir todos los búfers marcados.

o podría reemplazar a los pasos 2 + 3 con M-xibuffer-mark-by-file-name-regexpRET RET.. Es posible que desee unirse a ese comando *f:

;; Bind `ibuffer-mark-by-file-name-regexp' to *f 
(eval-after-load "ibuffer" 
    '(define-key ibuffer-mode-map (kbd "* f") 'ibuffer-mark-by-file-name-regexp)) 

tipo *c-h para ver todos los demás ibuffer-mark-* comandos que estén obligadas por defecto.

3

Esto puede huelga como la fuerza bruta, pero

  • sin duda va a volver a cargar el archivo de inicialización (considere alternatives to .emacs)
  • se volverá a cargar todos los buffers abiertos (siempre que esté utilizando desktop, que debería)
  • es fácil

    C-x C-c 
    emacs --debug-init & 
    
+1

Tenga en cuenta que desktop.el restaurará ciertas cosas (p. modos mayor y menor, y variables locales) como fueron originalmente, en lugar de como lo serían si el buffer se creara de nuevo. Si el objetivo es aplicar nuevas configuraciones a esos búferes, esto puede ser un impedimento. – phils

Cuestiones relacionadas