Mi piace l'idea di .dir-locals.el
. Ho il mio .dir-locals.el
file nella mia directory home che dovrebbe impostare tutte le variabili per directory / file che apro a meno che non ci sia .dir-locals.el
più vicino alla directory in cui apro il file. Tuttavia, anche se il file è riconosciuto, le variabili di directory per le sottodirectory non lo sono applicato ai file aperti.
Questo è il mio ~/.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))))
Quando apro il file ~/dev/test/test.c
la variabile indent-tabs-mode
è impostata su t
ed c-basic-offset
è 8
.
(describe-variable 'c-basic-offset)
in quel file mi dice che è impostato 8
da ~/.dir-locals.el
.
(describe-variable 'indent-tabs-mode)
in quel file dice che value ( t
) è solo nel suo stato predefinito.
Posso in qualche modo ottenere il comportamento desiderato? Che cosa sto facendo di sbagliato? Come vengono mappati i percorsi dei file alle sottodirectory ~/.dir-locals.el
?
Modificare:
Come suggerito Jonathan , ho anche provato:
(;; dev/school subdir
("dev/school" .
;; dev/school specification for all modes
(nil . ((indent-tabs-mode . nil)
(c-basic-offset . 4)))))
e anche ciò che ha add-dir-local-variable
aggiunto:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
Sfortunatamente, nessuno di questi funziona neanche.