つまり、ディスク上でファイルが変更されたことをEmacsに通知させたくない特定のファイルを指定して、変更を受け入れるかどうかを尋ねることができますか?これをグローバルに実行したくないのは、Emacsの外部で頻繁に変更されることがわかっているファイル(特に、カレンダー関連のOrgファイル)だけです。
つまり、ディスク上でファイルが変更されたことをEmacsに通知させたくない特定のファイルを指定して、変更を受け入れるかどうかを尋ねることができますか?これをグローバルに実行したくないのは、Emacsの外部で頻繁に変更されることがわかっているファイル(特に、カレンダー関連のOrgファイル)だけです。
回答:
これは、特定のバッファーに対してM-x auto-revert-mode
(manual)で実行できます。ファイルバッファの場合、これは毎秒auto-revert-interval
(デフォルトは5)の変更をチェックし、ディスクからバッファを自動的に更新します。
タイトルには「特定のファイル」と表示され、質問の本文にはファイルの種類(組織ファイル)が表示されます。状況に応じて、このモードを設定して目的の効果を持続的に得る方法をいくつか紹介します。以前の方法は、特定のユースケースに適用すれば、間違いなくよりクリーンで効率的です。
特定のタイプのすべてのファイルにこれが必要であることがわかっている場合は、initセットアップにモードフックを追加することを検討してください。
(add-hook 'org-mode-hook (lambda () (auto-revert-mode 1)))
特定のディレクトリ内のすべてに必要な場合は、関連する場所の.dir-locals.elで設定することを検討してください。必要に応じて、VCSがローカル設定ファイルを無視するようにしてください。この例は、同じディレクトリ(およびサブディレクトリ)にあるファイルのすべての組織モードバッファーに適用されます。M-x add-dir-local-variable
Emacsにこれを自動的に生成して保存させるために実行することもできます。
(
(org-mode . ((auto-revert-mode . 1)))
)
上記の2つの方法のどちらもうまくいかない場合は、各ファイルに設定されているファイルローカル変数を検討してください。これらのいずれかを設定する最も短くて最も一般的な方法は、ターゲットファイルの最初の行に以下を含めることです。
-*- eval: (auto-revert-mode 1); -*-
ソースファイルでは、テキストはコメント区切り文字(//、#など)の後に続けることができます。M-x add-file-local-variable-propline
Emacsがこれを自動的に生成するように実行したりM-x add-file-local-variable
、ファイルの上部ではなく下部を使用するフォーマット用に実行したりできます。
この方法は、ファイルを他のユーザーと共有していない場合にのみ使用してください。GNUマニュアルから:
この方法でマイナーモードを指定することは、しばしば誤りです。マイナーモードは個々のユーザー設定を表し、ファイルを編集する可能性のある別のユーザーに設定を課すことは不適切な場合があります。状況に応じてマイナーモードを自動的に有効または無効にしたい場合は、メジャーモードフックで実行する方が良いことがよくあります。
add-file-local-variable
、およびがありadd-dir-local-variable
ます。
はい。これをファイルの最後に置きます。
* COMMENT Config
Local Variables:
eval: (auto-revert-mode 1)
End:
これはOrgモードを前提としています。他のモードでは、以下のリンクで説明されているように、使用されている言語のコメントを使用します。
注:背景、安全情報、およびこれが常に良いアイデアとは限らない可能性があるという警告については、マニュアルの「ファイル内のローカル変数」を参照してください。また、復帰に関するセクションでは、自動復帰のデフォルトの5秒間隔を変更する方法などについて説明しています。
(auto-revert-mode 1)
代わりにマイナーモードをオンにする正規の方法ではありませんsetq
か?