Up: 自動リバートーバッファーを自動的に最新に保つ   [Contents][Index]


19.5.1 非ファイルバッファーの自動リバート

通常Global Auto Revertモードは、ファイルのバッファーだけをリバートします。非ファイルバッファーにたいして自動リバートを行うには、2つの方法があります。1つはそれらのバッファーにたいしてAuto Revertモードを有効にする方法です(M-x auto-revert-modeを使います)。もう1つはglobal-auto-revert-non-file-buffersに非nil値をセットする方法です。後者はそれが実装されているすべての種類のバッファーにたいして、自動リバートを有効にします(以下のメニューにリストされています)。

ファイルバッファーと同様、非ファイルバッファーはそれらにたいして作業を行っているときや、リバートすると失われてしまう情報が含まれているとき、通常はリバートすべきではありません。したがって、それらがmodified(変更されている)のときはリバートしません。非ファイルバッファーが変更されているとマークするのは、ファイルバッファーのときより通常難しいので、トリッキーになり得ます。

他のトリッキーな点に関する詳細は、効率の問題です。自動リバートはしばしばバッファーにたいするすべての可能な変更を検知しようとせず、広範または簡単に検知できる変更だけを検知します。したがって、非ファイルバッファーに自動リバートを有効にすることは、バッファーのすべての情報が最新であると常に保証はしませんし、手動によるリバートを無用にする必要もないからです。

それとは反対に、特定のバッファーはauto-revert-intervalで指定された秒数ごとに自動的にリバートします(これは現在のところBuffer Menuだけに適用されます)。この場合、自動リバートはリバートの際、auto-revert-verboseが非nilでも、何もメッセージを表示しません。

いくつかの非ファイルバッファーは、バッファーのデフォルトディレクトリーのファイル通知によって信頼性をもって更新が可能です。Diredがその例です。メジャーモードはそのバッファーでbuffer-auto-revert-by-notificationに非nilをセットしてこれを示すことができ、Auto Revertが定期的なポーリングを行わなくすることができます。このような通知はディレクトリー自身にたいしてだけであり、ディレクトリーのファイルは含まれません。

詳細はバッファーの特性に依存し、それらは対応するセクションで説明されています。