Tengo un problema con emacs que comenzó como demonio usando Systemd.
Cada apagado / reinicio si no detengo el servicio emacs daemon manualmente, se pierde el historial de archivos abiertos recientemente en la sesión actual. Creo que esto se debe a que Systemd no puede matar adecuadamente a Emacs cuando está apagado.
¿Qué puedo hacer para resolver este problema?
Mi configuración reciente en init.el:
(use-package recentf
:config (progn (setq recentf-auto-cleanup 'never
recentf-max-menu-items 50
recentf-max-saved-items 400
recentf-save-file
(expand-file-name "temp/.recentf" user-emacs-directory))
(recentf-mode t)))
Configuración del servicio Systemd emacs:
[Unit]
Description=Emacs: the extensible, self-documenting text editor
[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Restart=always
User=%i
#WorkingDirectory=%h
[Install]
WantedBy=multi-user.target
emacsclient
linux
recentf
Maglight
fuente
fuente
use-package
código funciona en otras circunstancias (?), Entonces parece que el único problema es quesystemd
no ejecuta suExecStop
comando.Respuestas:
Puede guardar archivos recientes justo antes del apagado llamando a
recentf-save-list
Esto agrega sus archivos recientes al historial reciente.
Si no desea hacer esto manualmente, puede agregar un temporizador que lo hará por usted cada 5 minutos.
Agregue esto a su configuración. Entonces, cada vez que abra emacs, llamará a la función y cada 5 minutos (o 300 segundos) continuará llamando a esa función.
Fuente: https://emacs.stackexchange.com/a/15115/5187
fuente
Sé que este hilo es antiguo, pero me encontré con el mismo problema en MS Windows (es decir, Windows sabe cómo salir de Emacs daemon con gracia). He resuelto esto para mí enganchando
recentf-save-list
enterminal-delete-functions
. Entonces en mi archivo init tengo la siguiente línea:Luego, la
recentf-list
sesión actual se guarda cada vez que cierra el cliente Emacs. Esto fue suficiente para mí, porque estoy acostumbrado a cerrar Emacs antes de apagar mi PC.fuente
Otra solución es guardar la lista de archivos recientes cada vez que visita un archivo nuevo. El siguiente cuadro agregado al archivo init hará el trabajo:
fuente