のアイデアが好きです.dir-locals.el
。.dir-locals.el
自分のホームディレクトリに自分のファイルがあり、ファイルを開い.dir-locals.el
たディレクトリに近い場合を除いて、開いたディレクトリ/ファイルのすべての変数を設定する必要があります。ただし、ファイルが認識されても、サブディレクトリのディレクトリ変数は開いているファイルに適用されます。
これは私の~/.dir-locals.el
です:
(("dev/school" .
((indent-tabs-mode . nil)
(c-basic-offset . 4)))
("dev/test" .
((indent-tabs-mode . nil)
(c-basic-offset . 4)))
(c-mode .
((c-file-style . "linux")
(c-basic-offset . 8))))
ファイルを開くと~/dev/test/test.c
、変数indent-tabs-mode
はに設定されt
てc-basic-offset
い8
ます。
(describe-variable 'c-basic-offset)
そのファイルでは、8
fromに設定されていることがわかります~/.dir-locals.el
。
(describe-variable 'indent-tabs-mode)
そのファイルではt
、その値()はデフォルトの状態にあると述べています。
どういうわけか望ましい動作を達成できますか?何が悪いのですか?ファイルパスはどのようにしてサブディレクトリにマッピングされ~/.dir-locals.el
ますか?
編集:
ジョナサンが示唆され、私も試してみました:
(;; dev/school subdir
("dev/school" .
;; dev/school specification for all modes
(nil . ((indent-tabs-mode . nil)
(c-basic-offset . 4)))))
さらにadd-dir-local-variable
追加されたもの:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
残念ながら、それらのいずれも機能しません。