HIROSE Yuuji's revive.el funcionó muy bien para mí durante bastante tiempo. Utilizo la configuración estándar presentada en los comentarios en revive.el. La documentación está bien escrita y revivir es muy fácil de usar y configurar. En particular, revive.el tiene mejor soporte que algunos para reactivar configuraciones que son un poco más complejas. Es particularmente bueno si lo combina con el windows.el de HIROSE Yuuji. Están hechos para trabajar juntos. windows.el hace posible la recuperación de divisiones de ventanas, etc. revive.el está diseñado con vistas a la extensibilidad hacia una integración de modo más profunda para configuraciones particulares. Pero para mis usos, he encontrado que es bastante bueno de la caja, aunque creo que lo retocaré para revivir windows w3m que actualmente no tengo configurado (Actualización: lo hago ahora: ver abajo).
Aquí está mi configuración revivir. Incluyo algunos comentarios útiles, primero para windows.el y luego en línea revive.el:
(provide 'my-revive-config)
(require 'windows) ; use this with revive so that window splits are recallable
; too
(win:startup-with-window) ; start with window 1
;;;[Key Bindings]
;;;
;;; The default prefix key stroke for Windows is `C-c C-w'. If it
;;; causes you some troubles, see the section `Customizations'.
;;; Here are the default key bindings.
;;;
;;; C-c C-w 1 Switch to window 1 (Q)
;;; C-c C-w 2 Switch to window 2 (Q)
;;; :
;;; C-c C-w 9 Switch to window 9 (Q)
;;; C-c C-w 0 Swap windows with the buffer 0 (Q)
;;; (Select unallocated frame(Emacs 19))
;;; C-c C-w SPC Switch to window previously shown (Q)
;;; C-c C-w C-n Switch to next window
;;; C-c C-w C-p Switch to previous window
;;; C-c C-w ! Delete current window (Q)
;;; C-c C-w C-w Window operation menu
;;; C-c C-w C-r Resume menu
;;; C-c C-w C-l Local resume menu
;;; C-c C-w C-s Switch task
;;; C-c C-w = Show window list (Q)
;;;
;;; The key strokes to select windows from 1 to 9 must be
;;; frequently used, so the alternative key strokes `C-c [Num.]' are
;;; available by default (And any function with (Q)mark can be
;;; invoked without C-w). To disable these quick key strokes, set
;;; the variable win:quick-selection to `nil' in your ~/.emacs.
(autoload 'save-current-configuration "revive" "Save status" t)
(autoload 'resume "revive" "Resume Emacs" t)
(autoload 'wipe "revive" "Wipe Emacs" t)
(define-key ctl-x-map "S" 'save-current-configuration)
(define-key ctl-x-map "F" 'resume)
(define-key ctl-x-map "K" 'wipe)
;;;
;;;[How to use]
;;;
;;; Call `save-current-configuration' (`C-x S' if you define key as
;;; above) when you want to save current editing status and call
;;; `resume' to restore it. Numerical prefix arg to them specifies
;;; the buffer number in which the editing status will be saved.
;;; Here the buffer refers to a revive s-exp in ~/.revive.el of
;;; which there can be n
;;;
;;; [Sample Operations]
;;; C-u 2 C-x S ;save status into the buffer #2
;;; C-u 3 C-x F ;load status from the buffer #3
Hay variantes de esto que otros como revive-plus.el y una slightly modified clone on github, pero yo prefiero el original.
Actualización Lunes, 12 de enero de 2015: Ahora puedo restaurar w3m en revivir (ver revivir.EL documentación para más detalles, y en particular, hacia ejemplos en revivir: major-mode-comando-a-lista-default):
(setq revive:major-mode-command-alist-private
'(("*w3m*" . w3m)))
aviso le está diciendo a revivir el nombre del búfer w3m. Incluso si tiene varias pestañas, solo la primera debe enumerarse como se indicó anteriormente.
Aquí está la variable w3m he puesto para restaurar todas las pestañas de la sesión anterior:
(setq w3m-session-load-last-sessions t)
Ojalá cambiar a otro grupo de trabajo cerraría todos los almacenamientos intermedios asociados con el grupo de trabajo anterior y abriría los nuevos, en lugar de simplemente abrir unos nuevos. – axel22
'workgroups' no tiene la conmutación adecuada entre los conjuntos de almacenamientos intermedios, y cargar/guardar es un problema. Agradezco la respuesta, pero no creo que sea una buena solución. – axel22
Acepto que restaurar (wg-restore-workgroup) y actualizar (wg-update-workgroup) puede ser complicado, ya que requiere disciplina. Podría hacer algunos ganchos para automatizarlo, pero realmente debería ser algo integrado. La carga y el almacenamiento se pueden automatizar fácilmente, p. con auto-guardado-gancho como lo hice. Dejé de preocuparme por los buffers abiertos hace mucho tiempo. Limpio algunos de ellos cada pocos días, y el modo ido facilita el cambio. Tengo 91 búferes abiertos en este momento. – jpkotta