前回のセッションからEmacsのウィンドウとバッファを復元するにはどうすればよいですか?
私が望む動作は、前回のセッションからすべてのタブを復元できるWebブラウザのようなものです。
自動的に復元最後のEmacsセッション状態に加えて、任意の数のセッション状態を保存し、他のセッションでオンデマンドで何度でも復元することもできます。 IOW、異なるデスクトップを簡単に切り替えることができます。
これを行う最も簡単な方法は、ライブラリをロードすることです Bookmark + そしてキーC-x r K
現在のセッション状態をデスクトップブックマークとして保存します。その後、キーC-x j K
を使用して、任意のセッションで任意のデスクトップブックマークを復元できます。
.emacsファイルに移動して(desktop-save-mode 1)と入力すると、現在のすべてのバッファーが「デスクトップ」ファイルに保存されます。フレームの実際のレイアウトは保存されませんが、その「レジスター」を調べることができます。
これを行うためのコードがいくつかあります。コードを機能させるには、「タペストリー」LISPライブラリをインストールする必要があります。 VMメーラーを使用する場合は、ライブラリが既にインストールされています。それ以外の場合は、 ここからダウンロード 。
次のコードを.emacsファイルに入れます。前回のEmacsセッションからウィンドウとフレームの設定を復元したい場合は、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)