visit中のファイルを別プログラムが変更した場合には、バッファーがvisit中のファイルと同期しなくなる可能性があります。これを最新に保つために、M-x auto-revert-modeをタイプしてAuto Revertモードを有効にできます。これはvisit中のファイルがディスク上で変更された際に、バッファーを自動的にリバートします。すべてのファイルバッファーで同じことを行うには、M-x global-auto-revert-modeをタイプしてGlobal Auto Revertモードを有効にします。
Auto Revertはバッファーに未保存の変更があったり、ディスク上のファイルが削除やリネームされた場合にはバッファーをリバートしません。
Auto
Revertモードの1つの使い方は、システムログのようなファイルを“tail”することです。これにより、それらのファイルにたいする、他のプログラムによる変更を、継続的に表示できます。これを行うには、ポイントをバッファーの最後に移動します。そうすればファイル内容が変更されても、ポイントはその位置に留まります。しかし、ファイルがファイルの終端方向に向かって変更されるだけだと確信できるときは、かわりにAuto
Revert Tailモード(auto-revert-tail-mode
)を使います。このモードは、これをより効果的に行います。Auto
Revert Tailモードは、リモートのファイルにたいしても機能します。
バッファーが自動リバートされたとき、メッセージが生成されます。これはauto-revert-verbose
を非nil
にセットすることにより、抑制できます。
Auto
Revertモードはリモートファイルのチェックやリバートは、通常は低速なので行いません。この挙動は変数auto-revert-remote-files
を非nil
にセットして変更できます。
デフォルトでは、Auto Revertモードはファイル通知(file
notifications)を使用して機能します。これにより、ファイルシステムへの変更が、OSからEmacsに報告されます。変数auto-revert-use-notify
をnil
にカスタマイズして、ファイル通知を無効にできます。その場合、Emacsは5秒ごとにポーリングして、ファイルの変更をチェックするでしょう。変数auto-revert-interval
を通じて、ポーリングの間隔を変更できます。
すべてのシステムでファイル通知がサポートされている訳ではありません。サポートされないシステムでは、auto-revert-use-notify
はデフォルトでnil
です。
デフォルトではAuto
Revertモードは、たとえファイル通知の使用中でもファイル変更の定期的なポーリングは行いません。多くの場合にはポーリングは不要であり、ポーリングをオフにして通知だけを信頼することにより電力が節減できます。これを行うには変数auto-revert-avoid-polling
に非nil
をセットします。しかし別のマシンからファイルを変更可能なUnix系マシン上の主要なネットワークファイルシステムのように、特定のファイルシステムでは通知は効果がありません。そのようなファイルシステムではポーリングが必要かもしれません。auto-revert-avoid-polling
が非nil
のときにポーリングを強制するには、を通知を使用するファイルから除外すべきファイルにマッチするようにauto-revert-notify-exclude-dir-regexp
をセットします。
Diredバッファー(Dired (ディレクトリーエディター)を参照)では、Auto Revertモードはそのバッファーのディレクトリーでファイルが作成、または削除されたとき更新を行います。
バージョンコントロールシステムの下にあるファイルを、以前のバージョンにリバーとするコマンドについては、バージョンコントロール操作のアンドゥを参照してください。バージョンコントロールシステムの下にあるファイルをvisitしているときの自動リバートの特性については、バージョンコントロールとモードラインを参照してください。