ファイルを大幅に変更したあとで、そのような変更をやめたい場合には、
コマンドrevert-buffer
でファイルのまえの版を読み込めます。
See バッファを復元する。
このコマンドは、バッファのテキストを ディスク上の訪問しているファイルのテキストで置き換える。 これにより、ファイルを訪問したり保存してから行った変更をすべて取り消せる。
デフォルトでは、最後の自動保存ファイルが 訪問しているファイルよりも新しい場合には、
revert-buffer
は自動保存ファイルを使うかどうか ユーザーに問い合わせる。 しかし、引数ignore-autoがnil
以外であると、 訪問したファイルのみを使う。 対話的に呼ばれた場合、数値前置引数を指定しない限り、 ignore-autoはt
である。 したがって、対話的な場合のデフォルトでは、自動保存ファイルを検査する。通常、バッファを変更するまえに
revert-buffer
は確認してくる。 しかし、引数noconfirmがnil
以外であると、revert-buffer
は確認しない。復元作業では、
insert-file-contents
の置換機能を用いて バッファ内のマーカ位置を保存するように努める。 復元操作のまえにバッファの内容とファイルの内容が同一であれば、 すべてのマークが保存される。 同一でなければ、復元によりバッファが変更され、 バッファの先頭と末尾の(あれば)未変更なテキスト内のマーカを保存する。 それ以外のマーカを保存しても問題を引き起こすだけであろう。
以下の変数を典型的にはバッファローカルな変数として設定することで
revert-buffer
の動作をカスタマイズできます。
この変数は、問い合わせずに復元すべきファイルのリストを保持する。 値は、正規表現のリストである。 ファイル名がこれらの正規表現の1つに一致すると、 ディスク上のファイルが変更されていて当該バッファが未変更であれば、
revert-buffer
はユーザーに確認せずに当該ファイルを復元する。
この変数の値は、このバッファを復元するために使う関数である。
nil
以外であれば、復元を行う引数なしの関数として呼び出される。 値がnil
であると、復元操作は通常の方法で行われる。diredモードなどのモードでは、 編集中のテキストはファイルの内容ではなく 別の方法で再生成されたものなので、 この変数のバッファローカルな値には内容を再生成する関数を指定すること。
この変数の値が
nil
以外であると、 このバッファを復元するときに更新内容を挿入するために使われる関数である。 当該関数は2つの引数をとる。 第1引数は、使用するファイル名である。 第2引数は、ユーザーが自動保存ファイルを 読むように指示しているとt
である。