M-x recover-file RET file RET コマンドを使用すると、自動保存ファイルの内容を利用してデータの消失から復旧できます。このコマンドは file を参照し、(確認操作の後)その自動保存ファイル #file# から内容を復元します。その後、C-x C-s で保存することで、復元したテキストを file 自体に格納できます。例えば、自動保存ファイル #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 はその読み込みを提案しません。
M-x recover-file が確認を求めた際に diff または = と答えると、file と自動保存ファイル #file# の差分が表示され、再度確認を求められます。
Emacsやコンピュータがクラッシュした場合、コマンド M-x recover-session を使えば、自動保存ファイルから編集していたすべてのファイルを復元できます。まず、中断されたセッションの一覧が表示されます。目的のセッションにポイントを移動し、C-c C-c と入力してください。
次に recover-session
が、そのセッション中に編集されていた各ファイルについて、そのファイルを復元するかどうかを尋ねます。y
と答えると recover-file
が呼び出され、通常通りに動作します。そこでは、元のファイルと自動保存ファイルの日付が表示され、改めてそのファイルを復元するかどうかが尋ねられます。
recover-session が完了すると、復元用に選択したファイルが Emacs
バッファに表示されます。その後、それらを保存してください。ファイル自体を更新するのは、この「保存」という操作のみです。
Emacsは、中断されたセッションに関する情報を、ディレクトリ ~/.emacs.d/auto-save-list/ 内の .saves-pid-hostname~ という名前のファイルに記録します。このディレクトリは変数 auto-save-list-file-prefix によって決定されます。auto-save-list-file-prefix を nil に設定すると、復旧用のセッションは記録されません。