前: Auto Save Control, 上: Auto Save


12.5.3 自動保存ファイルからのデータ回復

コマンドM-x recover-file <RET> file <RET>で、 自動保存ファイルの内容から紛失データを復旧できます。 このコマンドは、fileを訪問してから、 (確認したあとで)その自動保存ファイル#file# から内容を回復します。 そのあとに、C-x C-sfileそのものに復旧したテキストを保存します。 たとえば、foo.cの自動保存のファイル#foo.c#から foo.cを復旧するにはつぎのようにします。

     M-x recover-file <RET> foo.c <RET>
     yes <RET>
     C-x C-s

M-x recover-fileは確認するまえに、 指定したファイルと自動保存ファイルが置かれたディレクトリの一覧を表示するので、 それらのサイズや日付を比較できます。 自動保存ファイルのほうが古いと、 M-x recover-fileはそのファイルを読み込むようには 聞いてきません。

Emacsやコンピュータがクラッシュしても、 コマンドM-x recover-sessionを使えば、 編集中だったすべてのファイルを自動保存ファイルから復旧できます。 このコマンドは、まず、記録されている中断されたセッション一覧を表示します。 希望する箇所へポイントを移動し、C-c C-cと打ちます。

つぎに、 recover-sessionはそのセッションで編集中だった 各ファイルについてそのファイルを復旧するか聞いてきます。 yを答えると、recover-fileを呼び出し、 普通のとおりに動作します。 もとのファイルとその自動保存ファイルの日付を表示し、 ファイルを復旧するかどうかをもう一度聞いてきます。

recover-sessionが終了すると、 復旧を選んだファイルはEmacsバッファに入っています。 これらのバッファを保存してください。 こうすることで初めてファイルに保存できます。

中断されたセッションは、あとで復旧するために ~/.saves-pid-hostnameというファイルに記録されています。 これらの名前の`~/.saves'の部分は、 auto-save-list-file-prefixの値です。 この変数を個人の.emacsファイルで設定すれば、 別の場所にセッション記録を置くことができます。 しかし、同様にrecover-sessionも再定義して、 変更した新しい場所を探すようにする必要があります。 個人の.emacsファイルでauto-save-list-file-prefixnilを設定すると、復旧のためのセッションを記録しません。