Ich arbeite an vielen verschiedenen C-Projekten mit einzigartigen Einrückungsstilen. Wie kann ich Emacs dazu bringen, pro Projekt Einrückungseinstellungen vorzunehmen, ohne die vorgelagerten Projektbäume mit .dir-locals.el
Dateien zu verschmutzen ? Ich möchte die Projekte anhand ihrer Pfade auf der Festplatte zuordnen.
indentation
Artagnon
quelle
quelle
.dir-locals.el
. Mögen Kollegen diese Idee mögen?Antworten:
.dir-locals.el
ist meine bevorzugte Methode, wenn dies möglich ist, insbesondere, da sie für alle Emacs-Benutzer gilt, die an diesem Projekt arbeiten.Für Projekte, die Emacs-Benutzern feindlich gegenüberstehen oder auf andere Weise keine
.dir-locals.el
Dateien oder persönliche Einstellungen (vermutlich keine Einrückung) haben möchten, die für andere Personen nicht gelten sollten, ist eine Option, wenn Sie ein verteiltes Versionskontrollsystem verwenden um immer an persönlichen Zweigen zu arbeiten, die deine.dir-locals.el
. Ich kenne keine Möglichkeit, ein DCVS zu verwenden, das dies jedoch schmerzlos macht.Eine andere Möglichkeit ist, die
.dir-locals.el
Dateien nicht einzuchecken . Zum Beispiel, mit git, füge es hinzu.git/info/exclude
. Das ist natürlich schmerzhaft, wenn Sie viele Kassen eines Projekts haben.Was ich getan habe, wo
.dir-locals.el
keine Option war, ist das Hinzufügen eines Hakens, der nachbuffer-file-name
bekannten Werten sucht .(Warnung: Code wurde direkt in meinen Browser eingegeben, da ich momentan keinen Zugriff auf meinen echten Code habe.)
quelle
.dir-locals.el
zu.git/info/exclude
scheint eine gute Option zu sein..gitignore
im Stammverzeichnis eines Projekts hinzuzufügen ?.dir-locals.el
Ihren globalen Gitignore unter hinzufügen~/.config/git/ignore
.Sie können vorgelagerte Projekte wie llvm und linux nicht davon überzeugen, a einzuchecken
.dir-locals.el
.Eine durchdachte Lösung des Problems:
Wird wie folgt verwendet:
Ich habe ein ähnliches Makro auch für andere Sprachmodi.
quelle
Die Verteilung von .dir-locals.el in verschiedenen Projekten ist schwierig.
Mein Weg ist ziemlich einfach, stecke den gesamten Code in ein ~ / .custom.el.
Grundsätzlich wird der Code im Prog-Modus-Hook (oder in Ihrem-Was-auch-auch-auch-wichtigen-Modus-Hook) ausgeführt und führt die folgenden Schritte aus:
Ich benutze diese Methode seit einem Jahr erfolgreich.
Hier ist der Code (rufe meine-Setup-Entwicklungsumgebung in Prog-Mode-Hook auf):
quelle
Die normale Methode ist die Verwendung von
.dir-locals
. Deshalb wurden sie überhaupt erst eingeführt. Warum nicht? Meines Wissens tendieren die meisten projektbezogenen Tools dazu, ihre Konfigurationsdateien im Stammverzeichnis des Projekts zu behalten: git, svn, Eclipse und viele andere ...Vergessen Sie nur nicht, die Datei
.gitignore
oder ähnliches hinzuzufügen .quelle
Ich benutze guess-style.el .
Es ist ziemlich gut darin, den bevorzugten Einrückungsstil einer Datei zu erraten.
quelle