Next: , Previous: , Up: Top   [Contents][Index]


43 Emacsセッションの保存

Emacsの状態を1つのセッションから別のセッションのために保存するためには、desktopライブラリーを使用します。1度Emacsのデスクトップ(desktop) — バッファーと、それらのファイル名、メジャーモード、バッファーでの位置など — を保存すると、後のEmacsセッションで、保存されたデスクトップをリロードできます。デフォルトでは、デスクトップはフレームとウィンドウ設定も保存しようと試みます。これを無効にするには、desktop-restore-framesnilにセットします(この振る舞いを調整するためにマスタマイズできる関連オプションについては、変数のドキュメントを参照してください)。

コマンドM-x desktop-saveで、デスクトップを手動で保存できます。Emacs終了時のデスクトップの自動保存を有効にすることもできます。またEmacs開始時に最後に保存されたデスクトップを自動的に復元することもできます。将来のセッションのためには、Customizationバッファー(Easy Customizationを参照してください)を使用して、desktop-save-modetにセットするか、initファイル(Init Fileを参照してください)に以下の行を追加します:

(desktop-save-mode 1)

desktop-save-modeがアクティブで、desktopファイルが存在する場合、Emacsはdesktop-auto-save-timeout秒ごと(非nilかつ非0の場合)にデスクトップを自動保存します。

initファイルでdesktop-save-modeをオンにした場合、Emacsはカレントディレクトリーで保存されたデスクトップを探します(より正確には、desktop-pathで指定されたディレクトリーを探して、最初に見つかったデスクトップを使用します)。したがって異なるディレクトリーに別のデスクトップを保存でき、開始ディレクトリーによりEmacsがリロードするデスクトップを決定できます。M-x desktop-change-dirとタイプすることにより、カレントデスクトップを保存して、他のディレクトリーに保存されたデスクトップをリロードできます。M-x desktop-revertとタイプすることにより、前にリロードされたデスクトップをリバートできます。

保存されたデスクトップをリロードしたくないときは、コマンドラインでオプション‘--no-desktop’を指定します。これはカレントセッションにたいして、desktop-save-modeをオフにします。‘--no-init-file’オプションを指定してEmacsを開始することにより、通常desktop-save-modeをオンにしているinitファイルをバイパスして、デスクトップのリロードを無効にすることもできます。

デフォルトでは、デスクトップのすべてのバッファーは1度に復元されます。しかし、デスクトップにたくさんのバッファーがあるときは遅くなるかもしれません。変数desktop-restore-eagerで、即座に復元するバッファーの最大数を指定できます。残りのバッファーはEmacsのアイドル時に、“ゆっくり(lazily)”と復元されます。

Emacsのデスクトップを空にするには、M-x desktop-clearとタイプします。これは内部バッファーを除いてすべてのバッファーをkillし、desktop-globals-to-clearにリストされたグローバル変数をクリアーします。特定のバッファーを残したい場合は、変数desktop-clear-preserve-buffers-regexpをカスタマイズします。この変数の値には、killしないバッファーの名前にマッチする正規表現を指定します。

あるセッションから別のセッションへ、ミニバッファーのヒストリーを保存したい場合は、savehistライブラリーを使用してください。