Ich möchte den Hauptmodus für eine Datei so einstellen, wie Sie dateilokale Variablen verwenden würden
Local Variables:
mode: text
End:
aber .dir-locals.el
um die betreffende Datei nicht zu "verschmutzen". Ist das möglich?
Ich möchte den Hauptmodus für eine Datei so einstellen, wie Sie dateilokale Variablen verwenden würden
Local Variables:
mode: text
End:
aber .dir-locals.el
um die betreffende Datei nicht zu "verschmutzen". Ist das möglich?
eval
Pseudovariablen ist die einzige Möglichkeit, damit in einer.dir-locals.el
Datei umzugehen. Bei benutzerdefinierten Elisp-Dateien können Sie nur die Verwendung verwendenauto-mode-alist
, um den Dateinamen regexp abzugleichen (Sie können bei Bedarfregexp-quote
Muster für wörtliche Zeichenfolgenwerte erstellen).Antworten:
Es ist möglich, eine Zeichenfolge anstelle eines Modus anzugeben, dies funktioniert jedoch nur für Unterverzeichnisse. Also werde ich
nil
stattdessen verwenden, um alle Modi abzugleichen, und dann dieeval
Taste, um den Hauptmodus bedingt zu ändern:Ein Nachteil dieses Ansatzes ist, dass der
eval
Schlüssel unsicher ist. Sie müssen die Variable daher dauerhaft bestätigen, damit dies Auswirkungen hat.quelle
Das Folgende
.dir-locals.el
funktioniert gut für mich, um den Hauptmodus aller Dateien in einem Verzeichnis auf einzustellenshell-script-mode
:Der offensichtliche Nachteil ist, dass Sie den Hauptmodus nicht nur für eine bestimmte Teilmenge von Dateien im Verzeichnis angeben können.
Nachtrag: Amüsanterweise hat es auch den Nebeneffekt, den Hauptmodus von sich
.dir-locals.el
selbst einzustellenshell-script-mode
.Nachtrag 2: Eher amüsanter, es hat auch den Nebeneffekt
shell-script-mode
, dass der Hauptmodus von Dired-Puffern auf eingestellt wird , so dass es unmöglich ist, irgendwelche zu öffnen (da während der Initialisierung ein Fehler ausgegeben wird).quelle