projektspezifische Init-Datei

10

Ich habe einige Anpassungen für Emacs, die ich für ein einzelnes Projekt verwenden möchte, die sich jedoch nicht global auf Emacs auswirken. Gibt es eine Möglichkeit, Emacs eine bestimmte Init-Datei laden zu lassen, wenn sie aus einem bestimmten Verzeichnis gestartet werden, oder automatisch alle Init-Dateien in das Verzeichnis zu laden, aus dem sie gestartet werden?

Connor
quelle

Antworten:

17

Vielleicht möchten Sie einen Blick auf Verzeichnisvariablen werfen . Grundsätzlich müssen Sie .dir-locals.elin Ihrem Projektstamm eine Datei mit allen projektspezifischen Einstellungen erstellen . Wenn Sie jetzt eine Datei im Verzeichnis oder einem ihrer Unterverzeichnisse öffnen, werden die Einstellungen in der .dir-locals.elDatei von emacs übernommen .

Angenommen, Sie möchten den make package installBefehl as compile nur in Projekt A verwenden, müssen Sie eine Datei mit dem Namen .dir-Locations.el im Stammverzeichnis des Projekts erstellen und Folgendes hinzufügen

((nil . ((compile-command . "make package install"))))

Von nun an ist immer dann, wenn Sie einen compileBefehl aus einer Datei unter dem Verzeichnis A ausführen , die compile-commandoben angegebene Standardeinstellung , die compile commandfür Dateien außerhalb des Verzeichnisses A bleibt jedoch unberührt.

Iqbal Ansari
quelle
2

Eine weniger bekannte Alternative zu .dir-locals.elist der EditorConfig- Standard, der ein Emacs-Paket enthält . Es unterstützt nicht annähernd so viele Optionen, ermöglicht es jedoch einem Team von Personen, einige Einstellungen zu standardisieren und sie für verschiedene Editoren zu verwenden.

Ähnlich verhält es sich mit einer projektspezifischen .editorconfigDatei auf der obersten Ebene.

Lee H.
quelle