Next: Recursive Edit, Previous: Editing Binary Files, Up: Top [Contents][Index]
Emacsの状態を1つのセッションから別のセッションのために保存するためには、desktopライブラリーを使用します。1度Emacsのデスクトップ(desktop)
— バッファーと、それらのファイル名、メジャーモード、バッファーでの位置など —
を保存すると、後のEmacsセッションで、保存されたデスクトップをリロードできます。デフォルトでは、デスクトップはフレームとウィンドウ設定も保存しようと試みます。これを無効にするには、desktop-restore-frames
をnil
にセットします(この振る舞いを調整するためにマスタマイズできる関連オプションについては、変数のドキュメントを参照してください)。
コマンドM-x
desktop-saveで、デスクトップを手動で保存できます。Emacs終了時のデスクトップの自動保存を有効にすることもできます。またEmacs開始時に最後に保存されたデスクトップを自動的に復元することもできます。将来のセッションのためには、Customizationバッファー(Easy Customizationを参照してください)を使用して、desktop-save-mode
をt
にセットするか、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
ライブラリーを使用してください。