Tôi thích ý tưởng của .dir-locals.el
. Tôi có .dir-locals.el
tệp riêng trong thư mục chính của mình nên đặt tất cả các biến cho thư mục / tệp mà tôi mở trừ khi có .dir-locals.el
gần thư mục tôi mở tệp hơn. Tuy nhiên, mặc dù tệp được nhận dạng, các biến thư mục cho thư mục con không áp dụng cho các tập tin đã mở.
Đây là của tôi ~/.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))))
Khi tôi mở tập tin ~/dev/test/test.c
, biến indent-tabs-mode
được đặt thành t
và c-basic-offset
là 8
.
(describe-variable 'c-basic-offset)
trong tập tin đó cho tôi biết nó được đặt thành 8
từ ~/.dir-locals.el
.
(describe-variable 'indent-tabs-mode)
trong tệp đó cho biết giá trị của nó ( t
) chỉ ở trạng thái mặc định.
Tôi có thể bằng cách nào đó đạt được hành vi mong muốn? Tôi đang làm gì sai? Đường dẫn tệp được ánh xạ tới các thư mục con trong ~/.dir-locals.el
như thế nào?
Biên tập:
Như Jonathan đề nghị , tôi cũng đã thử:
(;; dev/school subdir
("dev/school" .
;; dev/school specification for all modes
(nil . ((indent-tabs-mode . nil)
(c-basic-offset . 4)))))
và thậm chí những gì add-dir-local-variable
đã thêm:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
Thật không may, không ai trong số họ làm việc cả.