Wie stelle ich die Fenster und Puffer von Emacs aus der letzten Sitzung wieder her?

Wie stelle ich die Fenster und Puffer von Emacs aus der letzten Sitzung wieder her?

Wie stelle ich die Fenster und Puffer von Emacs aus der letzten Sitzung wieder her?

Ich möchte ein Verhalten wie in einem Webbrowser, in dem Sie alle Registerkarten der letzten Sitzung wiederherstellen können.

Antwort1

Zusätzlich zuautomatischWiederherstellung Ihrerletzte Emacs-SitzungZustand, Sie können auch eine beliebige Anzahl von Sitzungszuständen speichern und diese bei Bedarf in einer anderen Sitzung beliebig oft wiederherstellen. Mit anderen Worten, Sie können problemlos zwischenverschiedene Desktops.

Der einfachste Weg, dies zu tun, besteht darin, die Bibliothek zu ladenLesezeichen+und verwenden Sie die Taste , C-x r Kum den aktuellen Sitzungsstatus als Desktop-Lesezeichen zu speichern. Sie können dann jedes Desktop-Lesezeichen in jeder Sitzung mit der Taste wiederherstellen C-x j K.

Antwort2

Gehen Sie zu Ihrer .emacs-Datei und geben Sie (desktop-save-mode 1) ein. Dadurch werden alle aktuellen Puffer in einer „Desktop“-Datei gespeichert. Das tatsächliche Layout Ihrer Frames wird nicht gespeichert, aber Sie können dazu in den „Registern“ nachsehen.

Antwort3

Hier ist ein Code, der dies ermöglicht. Damit der Code funktioniert, muss die Lisp-Bibliothek "tapestry" installiert sein. Wenn Sie den VM-Mailer verwenden, ist die Bibliothek bereits installiert. Andernfalls können SieLaden Sie es hier herunter.

Fügen Sie den folgenden Code in Ihre .emacs-Datei ein. Wenn Sie die Fenster- und Rahmeneinstellungen Ihrer letzten Emacs-Sitzung wiederherstellen möchten, geben Sie ein M-x load-my-tapestry RET.

(require 'tapestry)

(defvar my-tapestry-file "~/.tapestry")

(defun load-my-tapestry ()
  (interactive)
  (let ((b (find-file-noselect my-tapestry-file)))
    (sit-for 0)
    (set-tapestry (read b))
    (kill-buffer b)))

(defun save-my-tapestry ()
  (interactive)
  (let ((tap (tapestry)))
    (with-temp-buffer
      (let ((standard-output (current-buffer)))
        (setcar tap (make-list (length (car tap)) nil))
        (print tap)
        (write-region (point-min) (point-max) my-tapestry-file)))))

(add-hook 'kill-emacs-hook 'save-my-tapestry)

verwandte Informationen