Fikrini seviyorum .dir-locals.el. Ana dizinimde .dir-locals.eldosyayı açtığım dizine .dir-locals.eldaha 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.cdeğişken indent-tabs-modeolarak ayarlanır tve c-basic-offsetolur 8.
(describe-variable 'c-basic-offset)Bu dosya söylüyor o ayarlandığında 8dan ~/.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-variableeklenenler:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
Ne yazık ki, bunların hiçbiri de çalışmıyor.