我喜欢这个主意.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
?
编辑:
正如乔纳森(Jonathan)所建议的那样,我也尝试过:
(;; 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)))
不幸的是,这些都不起作用。