Next: , Previous: Saving, Up: Files


12.4 バッファを復元する

広範囲にファイルを変更したあとで気が変わったときには、 そのような変更を捨てるためにファイルのまえの版を読み込みます。 これには、カレントバッファに作用する M-x revert-bufferを使います。 意図せずにバッファを復元することは、 たくさんの作業結果を失うことになるので、 このコマンドにはyesで確認を与える必要があります。

revert-bufferは、ファイルの先頭から同じ距離(文字数)に ポイントを保ちます。 少し編集しただけなら、復元前後のポイント位置はだいたい同じ部分にあります。 徹底的に変更してしまったときには、 古いファイルでのポイント位置では まったく異なるテキスト部分に位置付けるでしょう。

復元すると、改めて変更するまでは、 そのバッファには『変更なし』の印が付きます。

diredバッファのように、ファイル以外のデータを反映するバッファでも 復元できる場合があります。 その場合、復元とは、適切なデータに基づいて内容を計算し直すことを意味します。 C-x bで明示的に作ったバッファを復元することはできません。 そういった指示をすると、revert-bufferはエラーを報告します。

自動的にかつ頻繁に変更されるファイル、 たとえば、実行中のプロセスから出力されるログ、 を編集するときには、C-x C-fでファイルを再訪問すると 何も聞かずにファイルを復元できると便利です。

こういったふるまいを指示するには、 変数revert-without-queryに正規表現のリストを設定します。 これらの正規表現の1つにファイル名が一致すると、 find-filerevert-bufferは、 バッファが変更されていない限り、 そのファイルが変更されていても復元します。 (テキストを編集してしまったときには、 変更を捨てさるのはまちがっている。)