GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Reverting.html ・ emacs-doc.conao3.com

20.4 バッファのリバート

ファイル閲覧用バッファに大幅な変更を加えた後、考えが変わった場合は、その変更をリバートして、保存済みのバージョンのファイルに戻ることができます。これを行うには、C-x x gと入力してください。意図せずリバートすると多くの作業が失われる可能性があるため、バッファが変更されている場合、Emacsはまず確認を求めます。

revert-buffer コマンドは、ファイルがわずかにしか編集されていない場合に、ポイントが以前とほぼ同じテキスト上の位置に来るように配置を試みます。しかし、大幅な変更を加えた場合は、ポイントが全く別の場所に移動することがあります。

リバートを行うと、バッファは未変更の状態になります。ただし、リバートされた変更内容は、バッファのアンドゥ履歴に単一の変更として追加されます(Undoを参照)。したがって、リバート後に気が変わった場合は、C-/またはそのエイリアスを入力することで、リバートされた変更内容を元に戻せます。

バッファをより慎重に復元するには、revert-buffer-with-fine-grain コマンドを使用できます。このコマンドは revert-buffer と同様に動作しますが、可能な限り非破壊的であるように努め、バッファ内のすべてのマーカー、プロパティ、およびオーバーレイを保持しようとします。大量の変更を加えた場合、この方法での復元に非常に時間がかかることがあるため、変数 revert-buffer-with-fine-grain-max-seconds を変更して、この方法でバッファ内容を置き換えるのにかかる最大秒数を指定できます。なお、revert-buffer-with-fine-grain の実行全体がこの時間を超える可能性があることは保証されていない点にご注意ください。

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

自動的に、かつ頻繁に変更されるファイル(例えば、継続的に動作するプロセスの出力ログなど)を編集する場合、Emacsがユーザーに確認することなくファイルを元の状態に戻すと便利かもしれません。この動作を要求するには、変数 revert-without-query に正規表現のリストを設定してください。ファイル名がこれらの正規表現のいずれかに一致し、かつ変更されていた場合、バッファ自体が変更されていなければ、find-file と revert-buffer が自動的にファイルを元に戻します。(テキストを編集したのであれば、その変更を破棄してしまうのは適切ではありません。)

C-x x g キーストロークは revert-buffer-quick コマンドに割り当てられています。これは revert-buffer コマンドと同様ですが、プロンプトの表示回数が少なくなります。revert-buffer とは異なり、現在のバッファがファイルを参照しており、かつバッファが変更されていない場合はプロンプトが表示されません。また、ユーザーオプション revert-buffer-quick-short-answers も適用されます。このオプションが nil 以外の場合、長い yes/no クエリの代わりに、より短い y/n クエリが使用されます。

また、ディスク上の訪問済みファイルが変更された際にバッファを自動的にリバートするようEmacsに指示することもできます。詳細は自動リバート:バッファを自動的に最新の状態に保つを参照してください。

なお、バッファをリバートすると、ファイルモードの選択で説明されている通り、そのバッファのファイルを参照するのに適したメジャーモードが有効になります。したがって、バッファをリバートした結果実際に有効になったメジャーモードはモードの再マッピングに依存しており、その間にmajor-mode-remap-alistをカスタマイズしていた場合は、元のモードとは異なる可能性があります。

C-x x @ キーストロークには tramp-revert-buffer-with-sudo コマンドが割り当てられています。これにより、スーパーユーザーまたは root 権限で再度ファイルにアクセスします。C-u プレフィックス引数を指定して呼び出すと、デフォルトの sudo 以外の Tramp メソッドを使用するよう促されます。The Tramp Manual の Tramp を参照してください。