2011-02-08 3 views
6

Configuré desktop.el para que emacs vuelva a abrir automáticamente todos los archivos en el inicio que se dejaron abiertos la última vez que maté emacs.Inicio de emacs-daemon se congela si el archivo tiene datos guardados automáticamente

Ahora, cuando inicie Emacs como un demonio y uno de los archivos reabrieron tiene datos de guardado automático-, el demonio muestra la costumbre de auto-save-datos-mensaje ("...file has auto save data...") y espera la confirmación - pero no continuar con el inicialización Sin confirmación, el daemon permanecerá en este estado y se aceptan nuevas conexiones (p. Ej., A través del emacsclient -c) pero no se procesan.

¿Hay alguna manera de deshabilitar las confirmaciones durante el inicio de los daemons?

Respuesta

2

edición: Se ha actualizado para que coincida con la versión de trabajo de Zarza:

(defadvice desktop-restore-file-buffer 
    (around my-desktop-restore-file-buffer-advice) 
    "Be non-interactive while starting a daemon." 
    (if (and (daemonp) 
      (not server-process)) 
     (let ((noninteractive t)) 
     ad-do-it) 
    ad-do-it)) 
(ad-activate 'desktop-restore-file-buffer) 

(command-line) comienza el proceso del servidor, pero sólo "después de cargar el archivo de inicio del usuario y después de procesar todos los argumentos de línea de comandos".

+1

¡Gracias, Phils, eso me ayudó mucho! Tuve que cambiar el objetivo del consejo para hacerlo funcionar, porque la función sugerida 'desktop-read' está envuelta con' (a menos que no sea interactiva ... '. Lo cambié a' desktop-restore-file-buffer': ' (defadvice desktop-restore-file-buffer (en mi-desktop-restore-file-buffer-advice) (if (y (daemonp) (no servidor-proceso)) (let ((t no interactivo)) ad -do-it) ad-do-it) ) (ad-activate 'desktop-restore-file-buffer) ' – Zarza

+1

Excelente, he actualizado la respuesta en consecuencia. – phils

Cuestiones relacionadas