Ich mag die Idee von .dir-locals.el
. Ich habe meine eigene .dir-locals.el
Datei in meinem Ausgangsverzeichnis, die alle Variablen für Verzeichnisse / Dateien festlegen soll, die ich öffne, es sei denn, es befindet sich .dir-locals.el
näher an dem Verzeichnis, in dem ich die Datei öffne. Obwohl die Datei erkannt wird, sind Verzeichnisvariablen für Unterverzeichnisse dies nicht wird auf geöffnete Dateien angewendet.
Das ist mein ~/.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))))
Wenn ich geöffnete Datei ~/dev/test/test.c
die Variable indent-tabs-mode
gesetzt ist t
und c-basic-offset
ist 8
.
(describe-variable 'c-basic-offset)
in dieser Datei sagt mir, dass es auf 8
von eingestellt ist ~/.dir-locals.el
.
(describe-variable 'indent-tabs-mode)
In dieser Datei heißt es, dass sich value ( t
) gerade im Standardzustand befindet.
Kann ich irgendwie das gewünschte Verhalten erreichen? Was mache ich falsch? Wie werden Dateipfade Unterverzeichnissen in zugeordnet ~/.dir-locals.el
?
Bearbeiten:
Wie Jonathan vorschlug , versuchte ich auch:
(;; dev/school subdir
("dev/school" .
;; dev/school specification for all modes
(nil . ((indent-tabs-mode . nil)
(c-basic-offset . 4)))))
und sogar was add-dir-local-variable
hinzugefügt hat:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
Leider funktioniert auch keines davon.