Todos los días enciendo emacs y abro exactamente los mismos archivos que tenía abiertos el día anterior. ¿Hay algo que pueda agregar al archivo init.el para que vuelva a abrir todos los búferes que estaba usando la última vez que salí de emacs?Emacs: ¿reabre buffers desde la última sesión en el inicio?
Respuesta
Puede utilizar el Emacs Desktop library:
Puede guardar el escritorio manualmente con el comando M-x-escritorio guardar. Puede también permiten el guardado automático del escritorio al salir de Emacs, y restauración automática de la última escritorio guardado cuando se inicia Emacs: utilice el búfer de personalización (ver Fácil personalización) para establecer escritorio en el Modo Ahorro de t para futuras sesiones , o añadir esta línea en su archivo ~/.emacs :
(desktop-save-mode 1)
http://www.phys.ufl.edu/docs/emacs/emacs_423.html pueden tener lo que necesita
puede abrir archivos en el fichero .emacs usando la siguiente función:
(find-file "/ home/me/path-to-file")
De acuerdo con su solución, el interlocutor debe escribir en sus dotemacs los nombres de los archivos abiertos recientemente. No es realmente prometedor. –
Él de hecho escribe lo siguiente "... abra los mismos archivos exactos que tenía abiertos el día anterior ...". Si abre los mismos archivos, esas entradas no cambiarían mucho. ¿No estás de acuerdo? – paweloque
@Lewap: el OP es una mujer. Ella no él. Cuidado con las suposiciones. – Telemachus
Aunque sospecho que la pregunta estaba buscando la funcionalidad de "escritorio" de emacs (ver respuesta anterior), el enfoque de Lewap puede ser útil si El conjunto de archivos que uno usa realmente es exactamente el mismo conjunto de archivos. De hecho, uno puede ir un paso más allá y definir 'perfiles' si uno tiene diferentes conjuntos de archivos que se utilizan con regularidad ... Quickie ejemplo:
(let ((profile
(read-from-minibuffer "Choose a profile (acad,dist,lisp,comp,rpg): ")
))
(cond
((string-match "acad" profile)
(dired "/home/thomp/acad")
(dired "/home/thomp/acad/papers")
)
((string-match "lisp" profile)
(setup-slime)
(lisp-miscellany)
(open-lisp-dirs)
)
((string-match "rpg" profile)
(find-file "/home/thomp/comp/lisp/rp-geneval/README")
(dired "/home/thomp/comp/lisp/rp-geneval/rp-geneval")
... etc.
Si encuentra que regularmente se cambia de ida y vuelta entre los diferentes conjuntos de archivos usados regularmente mientras trabaja, considere usar perspectives y llenar cada perspectiva con el conjunto deseado de archivos de uso regular.
Existen mejoras útiles que puede realizar en la función de escritorio básico. Particularmente útil (IMO) son los métodos para guardar automáticamente el escritorio durante la sesión, ya que de lo contrario, si el sistema falla, se quedará bloqueado con el archivo de escritorio con el que comenzó esa sesión, bastante molesto si tiende a mantener Emacs funcionando durante muchos días a la vez.
http://www.emacswiki.org/emacs/DeskTop
El wiki también tiene información útil sobre la persistencia de los datos entre las sesiones en general:
http://www.emacswiki.org/emacs/SessionManagement
Para escritorios específicamente, pensé que Desktop Recover parecía particularmente prometedora, sin embargo, no tengo todavía probado.
(find-file-noselect "/my/file")
se abrirá silenciosamente, es decir, sin levantar el búfer. Solo digo.
EDITAR Este comando es no interactivo; Para probarlo, debe evaluar la expresión, por ejemplo, colocando el cursor después del último paréntesis y presionando C-x C-e
Caída de votos esto es no es genial; este comando definitivamente funciona y está dentro del alcance de la pregunta.
No he votado negativamente, pero tal vez tu respuesta ha sido desestimada porque no aborda el tema de cómo abrir específicamente los buffers que estaban abiertos en la sesión previa de Emacs. –
Para almacenar/restaurar las memorias intermedias/tabs (pestañas elscreen específicamente): utilizo elscreen y la forma en que administro almacenar/restaurar la sesión de escritorio y la configuración de la lengüeta elscreen es el siguiente código en mi archivo .emacs (la los nombres utilizados son autoexplicativos y si las funciones de almacenamiento/restauración no se deben ejecutar cada vez que emacs comience, simplemente comenten las líneas con "(push # 'elscreen-store kill-emacs-hook)" y "(elscreen-restore)"):
(defvar emacs-configuration-directory
"~/.emacs.d/"
"The directory where the emacs configuration files are stored.")
(defvar elscreen-tab-configuration-store-filename
(concat emacs-configuration-directory ".elscreen")
"The file where the elscreen tab configuration is stored.")
(defun elscreen-store()
"Store the elscreen tab configuration."
(interactive)
(if (desktop-save emacs-configuration-directory)
(with-temp-file elscreen-tab-configuration-store-filename
(insert (prin1-to-string (elscreen-get-screen-to-name-alist))))))
(push #'elscreen-store kill-emacs-hook)
(defun elscreen-restore()
"Restore the elscreen tab configuration."
(interactive)
(if (desktop-read)
(let ((screens (reverse
(read
(with-temp-buffer
(insert-file-contents elscreen-tab-configuration-store-filename)
(buffer-string))))))
(while screens
(setq screen (car (car screens)))
(setq buffers (split-string (cdr (car screens)) ":"))
(if (eq screen 0)
(switch-to-buffer (car buffers))
(elscreen-find-and-goto-by-buffer (car buffers) t t))
(while (cdr buffers)
(switch-to-buffer-other-window (car (cdr buffers)))
(setq buffers (cdr buffers)))
(setq screens (cdr screens))))))
(elscreen-restore)
- 1. pareja windows/buffers juntos en emacs?
- 2. Emacs líneas truncadas en todos los buffers
- 3. Aplicar una función a todos los buffers en emacs
- 4. Cómo hacer commit de git en los buffers de Emacs
- 5. Emacs buffer-menu: ¿cómo mostrar solo el archivo + dired buffers?
- 6. Cambiar la configuración regional en el inicio de sesión
- 7. Fijar buffers de Emacs en ventanas (para cscope)
- 8. Cerrar todos los buffers además del actual en Emacs
- 9. No se puede abrir la base de datos solicitada por el inicio de sesión. El inicio de sesión falló. Falló el inicio de sesión para el usuario
- 10. Inicio de sesión en J2ME
- 11. Tela inicio de sesión automático en Windows
- 12. ¿Cómo evitar el mensaje de "inicio del servidor" al abrir otra sesión de Emacs?
- 13. Backbone.js - cómo manejar el "inicio de sesión"?
- 14. El inicio de sesión falla después de la actualización a ASP.net 4.0 desde 3.5
- 15. Comprensión de "Buffers" y "Cached" desde el comando
- 16. Código de inicio de sesión en Xcode
- 17. ¿Cómo funciona el inicio de sesión único?
- 18. inicio de sesión de la aplicación Android
- 19. Inicio de sesión único en varios dominios
- 20. ¿Cómo maximizar Emacs en Windows al inicio?
- 21. TYPO3 - Redirigiendo a la página de inicio de sesión cuando el usuario no ha iniciado sesión
- 22. cargar .emacs desde la url
- 23. ¿Cómo obtengo el loginRedirect desde múltiples ubicaciones de inicio de sesión en CakePHP?
- 24. Webapp2 para la autenticación y el inicio de sesión
- 25. ¿Cómo puedo administrar la sesión en el inicio/cierre de sesión de Android?
- 26. Symfony2 Inicio de sesión y seguridad
- 27. Stop tramp-mode ejecutándose en el inicio de emacs
- 28. Iniciar sesión en PostgreSQL - Error de inicio de sesión
- 29. Después de cerrar la sesión, si pulso el botón hacia atrás puedo ver la última página de inicio de sesión que requiere
- 30. Originar la edición del archivo remoto usando emacs vagabundo desde la sesión ssh
Parece que el manejo del escritorio es diferente en Emacs 21 y 22+. El tema se describe en esta página: http://www.emacswiki.org/emacs/Desktop. – hji