Pour les tampons/onglets de stockage/restauration des parties de la question: J'utilise elscreen et la façon dont je gère le stockage/restauration de la session de bureau et la configuration de l'onglet elscreen est le code suivant dans mon fichier .emacs (les noms Les fonctions utilisées sont explicites et si les fonctions de stockage/restauration ne doivent pas être exécutées chaque fois qu'emacs démarre, commentez simplement les lignes avec "(push # 'elscreen-store kill-emacs-hook)" et "(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)
EDIT:
J'ai changé le "if (desktop-read)", en elscreen-restore, en "if (eq (type-of (desktop-read))" symbole) "parce que, si emacs est tué au lieu d'être fermé dans les habituels Ainsi, le fichier .emacs.desktop.lock n'est pas supprimé. Ainsi, si pour une raison quelconque la session de bureau ne peut pas être restaurée, la valeur de retour de "(desktop-read)" est une "chaîne", expliquant l'erreur, et non "nil", donc "if" n'échoue pas devrait.
Il serait utile si vous pouviez énumérer ceux que vous avez essayé et n'a pas aimé. – Nifle
+1 Nifle, et vous devriez inclure un lien sur "la page dans emacs wiki", afin que vos lecteurs puissent voir de quoi vous parlez. Un lien vers les documents VIM appropriés aiderait aussi. – dmckee
OK. J'ai pris une pause pour nettoyer ça. La chose est, hevalbaranov, que vous demandez aux gens de vous aider, alors vous pourriez envisager de mettre un peu plus de travail pour le rendre * facile * pour eux de le faire ... – dmckee