指定したディレクトリにあるファイルを開いたときに実行する関数を割り当てる良い方法は何ですか?フックと同じですが、メジャーモードではなくファイルの場所に基づいています。
ディレクトリに特別なファイルを置くことでこれを有効にできればいいのですが、中央の構成ファイルにフックを追加するのも良いでしょう。
指定したディレクトリにあるファイルを開いたときに実行する関数を割り当てる良い方法は何ですか?フックと同じですが、メジャーモードではなくファイルの場所に基づいています。
ディレクトリに特別なファイルを置くことでこれを有効にできればいいのですが、中央の構成ファイルにフックを追加するのも良いでしょう。
回答:
これは、ローカル変数が何のためにあるかのように聞こえます。.dir-locals.el
必要な設定でディレクトリにファイルを作成するだけで、すべてのファイルがそれらの設定を継承します。
;;; .dir-locals.el
((nil
(eval add-hook 'find-file-hook (lambda ()
(message "my find-file hook called...")) nil t)))
nil
これは怒鳴るディレクトリ内のすべてのファイルに適用されることを意味し.dir-locals.el
。
にt
渡されるとadd-hook
、find-file-hook
バッファがローカルになります。したがって、フックはこのファイルに対してのみ実行されます。
dir-locals
前find-file-hook
に実行されるので、すべてが機能します。
find-file-hook
、そしてすべてのファイルに対して実行されますあとで開けますね