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.
add-dir-local-variable
und es wurde~/.dir-locals.el
mit einer noch kürzeren Syntax hinzugefügt, als ich in der Frage verwendet habe :("dev/test" (indent-tabs-mode))
. Funktioniert aber immer noch nicht.("dev/test" . ((spec1 ...) (spec2 ...) ...))
((org-mode . ((org-indent-mode . t))) ("subdir" . ((nil . ((org-indent-mode . nil))))
und er hat ordnungsgemäß funktioniert (aufgefordert, die lokale Variable auf Null zu setzen). Versuchen Sie vielleicht, die Root-Werte über die Unterverzeichnis-Spezifikationen in der Liste zu setzen. Möglicherweise wird sie auf den zuletzt gefundenen Wert gesetzt.