Para los tampones/pestañas almacenar/restaurar partes de la pregunta: utilizo elscreen y la forma en que manejo 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 (los nombres se explican por sí mismos y si las funciones de almacenamiento/restauración no se deben ejecutar cada vez que emacs comienza, 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 (eq (type-of (desktop-read)) 'symbol)
(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)
EDITAR:
Cambié el "if (desktop-read)", en elscreen-restore, al símbolo "if (eq (type-of (desktop-read))" porque, si se mata a emacs en lugar de cerrarse en el usual manera, el archivo .emacs.desktop.lock no se elimina. Por lo tanto, si por alguna razón la sesión de escritorio no se puede restaurar, el valor de retorno de "(lectura de escritorio)" es una "cadena", explicando el error, y no "nulo", por lo que el "si" no falla, ya que debería.
Ayudaría si pudiera enumerar los que intentó y no le gustaron. – Nifle
+1 Nifle, y debe incluir un enlace en "la página en wiki de emacs", para que sus lectores puedan ver de lo que está hablando. Un enlace a los documentos de VIM apropiados también ayudaría. – dmckee
OK. Intenté limpiar esto. Lo que sucede es que, hevalbaranov, le estás pidiendo a la gente que te ayude, por lo que podrías considerar poner un poco más de trabajo para que sea * fácil * para ellos hacerlo ... – dmckee