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


18.4 バッファーのリバート

ファイルをvisitしているバッファーにたいして、広範な変更をした後に気が変わったときは、リバート(revert: 復元)することにより。変更をファイルの保存されたバージョンに戻すことができます。これを行うにはM-x revert-bufferとタイプします。間違えてリバートしてしまうことによって大量の作業結果を失うこともあり得るので、Emacsは最初に確認を求めます。

revert-bufferコマンドは、ファイルが少ししか変更されていないときは、前にポイントがあったテキスト部分とだいたい同じ位置にポイントを置くよう試みます。しかし広範な変更を行っていた場合、ポイントは大きく異なる場所に置かれることになります。

リバートはバッファーをnot modified(変更されていない)とマークします。しかし、これはリバートされた変更を単一の変更として、そのバッファーのundoヒストリーに追加します(Undoを参照)。したがって、リバート後に気が変わってリバートされた変更を元に戻したくなった場合は、C-/またはそのエイリアスをタイプして、それを行うことができます。

ファイルに関連付けられていない、Diredバッファーのようなバッファーでも、リバートすることができます。それらの場合、リバートはその内容を再計算することを意味します。C-x bで明示的に作成したバッファーは、リバートできません。リバートを試みるとrevert-bufferはエラーを報告します。

自動的かつ頻繁に変更されるファイル、たとえば実行を続けるプロセスのログ出力などを編集しているとき、Emacsが確認なしにリバートできたら便利でしょう。このような振る舞いをさせるには、変数revert-without-queryに正規表現のリストをセットします。ファイル名がそれらの正規表現の1つにマッチしたとき、find-fileおよびrevert-bufferは、バッファーが変更されていないときは、ファイルが変更される度に自動的にリバートします(もしテキストを編集していた場合、変更を放棄するのはおそらく正しくありません)。

visit中のファイルがディスク上で変更された際にバッファーを自動的にリバートするようにEmacsに指定できます。Auto Revertを参照してください。