特定のファイルを変更を自動的かつサイレントに受け入れるように設定できますか?


9

つまり、ディスク上でファイルが変更されたことをEmacsに通知させたくない特定のファイルを指定して、変更を受け入れるかどうかを尋ねることができますか?これをグローバルに実行したくないのは、Emacsの外部で頻繁に変更されることがわかっているファイル(特に、カレンダー関連のOrgファイル)だけです。

回答:


8

これは、特定のバッファーに対してM-x auto-revert-modemanual)で実行できます。ファイルバッファの場合、これは毎秒auto-revert-interval(デフォルトは5)の変更をチェックし、ディスクからバッファを自動的に更新します。

タイトルには「特定のファイル」と表示され、質問の本文にはファイルの種類(組織ファイル)が表示されます。状況に応じて、このモードを設定して目的の効果を持続的に得る方法をいくつか紹介します。以前の方法は、特定のユースケースに適用すれば、間違いなくよりクリーンで効率的です。

特定のタイプのすべてのファイルにこれが必要であることがわかっている場合は、initセットアップにモードフックを追加することを検討してください。

(add-hook 'org-mode-hook (lambda () (auto-revert-mode 1)))

特定のディレクトリ内のすべてに必要な場合は、関連する場所の.dir-locals.elで設定することを検討してください。必要に応じて、VCSがローカル設定ファイルを無視するようにしてください。この例は、同じディレクトリ(およびサブディレクトリ)にあるファイルのすべての組織モードバッファーに適用されます。M-x add-dir-local-variableEmacsにこれを自動的に生成して保存させるために実行することもできます。

(
  (org-mode . ((auto-revert-mode . 1)))
 )

上記の2つの方法のどちらもうまくいかない場合は、各ファイルに設定されているファイルローカル変数を検討してください。これらのいずれかを設定する最も短くて最も一般的な方法は、ターゲットファイルの最初の行に以下を含めることです。

-*- eval: (auto-revert-mode 1); -*-

ソースファイルでは、テキストはコメント区切り文字(//、#など)の後に続けることができます。M-x add-file-local-variable-proplineEmacsがこれを自動的に生成するように実行したりM-x add-file-local-variable、ファイルの上部ではなく下部を使用するフォーマット用に実行したりできます。

この方法は、ファイルを他のユーザーと共有していない場合にのみ使用してください。GNUマニュアルから:

この方法でマイナーモードを指定することは、しばしば誤りです。マイナーモードは個々のユーザー設定を表し、ファイルを編集する可能性のある別のユーザーに設定を課すことは不適切な場合があります。状況に応じてマイナーモードを自動的に有効または無効にしたい場合は、メジャーモードフックで実行する方が良いことがよくあります。


2
(auto-revert-mode 1)代わりにマイナーモードをオンにする正規の方法ではありませんsetqか?
mbork 2014年

1
はい、あなたが正しい。その例を1秒でクリーンアップします。ありがとう。
Mian 2014年

1
どういたしまして。(とはいえ、AFAIU、ファイルローカル変数はOPのユースケースに最適です。)
mbork

1
君の言う通りかもね。IMOそれは彼らのファイル編成の詳細に依存します。emacsの外で頻繁に変更されることがわかっているファイルがすべてorgファイルであるか、すべて同じ場所(Dropboxディレクトリなど)にある場合、モードまたはディレクトリベースのアプローチはよりクリーンで簡単であり、回避されます。おまけとしてファイルを乱雑にします。
Mian

2
これらの両方のメソッドとのインターフェースとしてadd-file-local-variable、およびがありadd-dir-local-variableます。
Sean Allred 2014年

3

はい。これをファイルの最後に置きます。

* COMMENT Config
Local Variables:
eval: (auto-revert-mode 1)
End:

これはOrgモードを前提としています。他のモードでは、以下のリンクで説明されているように、使用されている言語のコメントを使用します。

注:背景、安全情報、およびこれが常に良いアイデアとは限らない可能性があるという警告については、マニュアルの「ファイル内のローカル変数」を参照してください。また、復帰に関するセクションでは、自動復帰のデフォルトの5秒間隔を変更する方法などについて説明しています。


これは絶対に最後にする必要がありますか?私は.orgファイルを生成するスクリプトを持っていて、それを最初の方に置いてみました-うまくいかないようです...
emacsomancer '19

1
はい、リンクを参照してください。そして、第一線の解決策について他の答えを見てください。
mbork 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.