Saya suka ide .dir-locals.el
. Saya memiliki .dir-locals.el
file saya sendiri di direktori home saya yang harus mengatur semua variabel untuk direktori / file yang saya buka kecuali ada .dir-locals.el
lebih dekat ke direktori saya membuka file. Namun, meskipun file tersebut dikenali, variabel direktori untuk subdirektori tidak diterapkan pada file yang dibuka.
Ini milik saya ~/.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))))
Ketika saya buka file ~/dev/test/test.c
variabel indent-tabs-mode
diatur ke t
dan c-basic-offset
adalah 8
.
(describe-variable 'c-basic-offset)
dalam file itu memberitahu saya itu diatur 8
dari ~/.dir-locals.el
.
(describe-variable 'indent-tabs-mode)
dalam file itu mengatakan nilainya ( t
) hanya dalam keadaan default.
Bisakah saya mencapai perilaku yang diinginkan? Apa yang saya lakukan salah? Bagaimana jalur file dipetakan ke subdirektori ~/.dir-locals.el
?
Edit:
Seperti yang disarankan Jonathan , saya juga mencoba:
(;; dev/school subdir
("dev/school" .
;; dev/school specification for all modes
(nil . ((indent-tabs-mode . nil)
(c-basic-offset . 4)))))
dan bahkan apa yang add-dir-local-variable
ditambahkan:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
Sayangnya, tidak satu pun yang berfungsi.