Fikrini seviyorum .dir-locals.el
. Ana dizinimde .dir-locals.el
dosyayı açtığım dizine .dir-locals.el
daha yakın olmadığı sürece açtığım dizinler / dosyalar için tüm değişkenleri ayarlaması gereken kendi dosyam var . Dosya tanınsa bile, alt dizinler için dizin değişkenleri açılan dosyalara uygulanır.
Bu benim ~/.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))))
Dosyayı açtığımda ~/dev/test/test.c
değişken indent-tabs-mode
olarak ayarlanır t
ve c-basic-offset
olur 8
.
(describe-variable 'c-basic-offset)
Bu dosya söylüyor o ayarlandığında 8
dan ~/.dir-locals.el
.
(describe-variable 'indent-tabs-mode)
bu dosyada değeri ( t
) sadece varsayılan durumunda olduğunu söylüyor .
İstenilen davranışı bir şekilde başarabilir miyim? Neyi yanlış yapıyorum? Dosya yolları alt dizinlere nasıl eşlenir ~/.dir-locals.el
?
Düzenle:
As Jonathan önerdi , ben de denedim:
(;; dev/school subdir
("dev/school" .
;; dev/school specification for all modes
(nil . ((indent-tabs-mode . nil)
(c-basic-offset . 4)))))
ve hatta add-dir-local-variable
eklenenler:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
Ne yazık ki, bunların hiçbiri de çalışmıyor.