Previous: , Up: Modes   [Contents][Index]


23.8 Desktop Saveモード

Desktop Saveモードとは、あるセッションから別のセッションへEmacs状態を保存する機能です。Desktop Saveモードの使用に関するユーザーレベルのコマンドについては、GNU Emacsマニュアルに記載されています(Saving Emacs Sessions in the GNU Emacs Manualを参照)。バッファーでファイルをvisitしているモードでは、この機能を使うために何も行う必要はありません。

ファイルをvisitしていないバッファーについて状態を保存するには、そのメジャーモードがバッファーローカル変数desktop-save-bufferを非nil値にバインドしなければなりません。

Variable: desktop-save-buffer

このバッファーローカル変数が非nilなら、デスクトップ保存時にそのバッファー状態がdesktopファイルに保存される。値が関数なら、その関数はデスクトップ保存時に引数desktop-dirnameで呼び出されて、関数が呼び出されたバッファーの状態とともに関数の値がdesktopファイルに保存される。補助的な情報の一部としてファイル名がリターンされたとき、それらは以下を呼び出してフォーマットされること

(desktop-file-name file-name desktop-dirname)

ファイルをvisitしていないバッファーがリストアされるようにするには、メジャーモードがその処理を行う関数を定義しなければならず、その関数は連想配列desktop-buffer-mode-handlersにリストされなければならない。

Variable: desktop-buffer-mode-handlers

以下を要素にもつalist

(major-mode . restore-buffer-function)

関数restore-buffer-functionは以下の引数リストで呼び出される

(buffer-file-name buffer-name desktop-buffer-misc)

この関数はリストアされたバッファーをリターンすること。ここでdesktop-buffer-miscは、オプションでdesktop-save-bufferにバインドされる関数がリターンする値。