Me gusta la idea de .dir-locals.el
. Tengo mi propio .dir-locals.el
archivo en mi directorio de inicio que debe establecer todas las variables para los directorios / archivos que abro a menos que esté .dir-locals.el
más cerca del directorio en el que abro el archivo. Sin embargo, a pesar de que el archivo es reconocido, las variables de directorio para subdirectorios no son aplicado a los archivos abiertos.
Este es mi ~/.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))))
Cuando abro el archivo, ~/dev/test/test.c
la variable indent-tabs-mode
se establece en t
y c-basic-offset
es 8
.
(describe-variable 'c-basic-offset)
en ese archivo me dice que está configurado 8
desde ~/.dir-locals.el
.
(describe-variable 'indent-tabs-mode)
en ese archivo dice que su valor ( t
) está en su estado predeterminado.
¿Puedo de alguna manera lograr el comportamiento deseado? ¿Qué estoy haciendo mal? ¿Cómo se asignan las rutas de archivo a subdirectorios ~/.dir-locals.el
?
Editar:
Como Jonathan sugirió , también probé:
(;; dev/school subdir
("dev/school" .
;; dev/school specification for all modes
(nil . ((indent-tabs-mode . nil)
(c-basic-offset . 4)))))
e incluso lo que add-dir-local-variable
agregó:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
Desafortunadamente, ninguno de esos funciona tampoco.