J'aime l'idée de .dir-locals.el
. J'ai mon propre .dir-locals.el
fichier dans mon répertoire personnel qui devrait définir toutes les variables pour les répertoires / fichiers que j'ouvre à moins qu'il n'y ait .dir-locals.el
plus près du répertoire dans lequel j'ouvre le fichier. Cependant, même si le fichier est reconnu, les variables de répertoire pour les sous-répertoires ne sont pas appliqué aux fichiers ouverts.
C'est mon ~/.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))))
Lorsque j'ouvre un fichier, ~/dev/test/test.c
la variable indent-tabs-mode
est définie sur t
et l' c-basic-offset
est 8
.
(describe-variable 'c-basic-offset)
dans ce fichier me dit qu'il est réglé sur à 8
partir de ~/.dir-locals.el
.
(describe-variable 'indent-tabs-mode)
dans ce fichier indique que sa valeur ( t
) est juste dans son état par défaut.
Puis-je en quelque sorte atteindre le comportement souhaité? Qu'est-ce que je fais mal? Comment les chemins d'accès aux fichiers sont-ils mappés aux sous-répertoires dans ~/.dir-locals.el
?
Éditer:
Comme Jonathan l'a suggéré , j'ai également essayé:
(;; dev/school subdir
("dev/school" .
;; dev/school specification for all modes
(nil . ((indent-tabs-mode . nil)
(c-basic-offset . 4)))))
et même ce qui a add-dir-local-variable
ajouté:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
Malheureusement, aucun de ceux-ci ne fonctionne non plus.