指定したディレクトリにあるファイルを開いたときに実行する関数を割り当てる良い方法は何ですか?フックと同じですが、メジャーモードではなくファイルの場所に基づいています。
ディレクトリに特別なファイルを置くことでこれを有効にできればいいのですが、中央の構成ファイルにフックを追加するのも良いでしょう。
指定したディレクトリにあるファイルを開いたときに実行する関数を割り当てる良い方法は何ですか?フックと同じですが、メジャーモードではなくファイルの場所に基づいています。
ディレクトリに特別なファイルを置くことでこれを有効にできればいいのですが、中央の構成ファイルにフックを追加するのも良いでしょう。
回答:
これは、ローカル変数が何のためにあるかのように聞こえます。.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、そしてすべてのファイルに対して実行されますあとで開けますね