Wie verknüpft man Dateien mit dem Kompilierungsbefehl in Emacs?


3

Eine Sache, die ich häufig tue, ist, dass ich jedes Mal, wenn ich Emacs neu starte, den Kompilierungsbefehl erneut eingeben muss:

make XXX -f path-to-makefile/makefile

Manchmal arbeite ich auch gleichzeitig an verschiedenen Dingen, zum Beispiel am Bearbeiten eines Tex-Dokuments und Schreiben von Code, und muss den Kompilierungsbefehl letztendlich erneut eingeben, wenn ich von einem zum anderen wechsle.

Gibt es einen besseren Weg, dies zu tun? Kann ich Dateien mit dateispezifischen Kompilierungsbefehlen verknüpfen, die Emacs standardmäßig bekannt sind? Oder gibt es einen anderen Ansatz, der meinen Kompilierungsworkflow verbessern würde?

Antworten:


0

Manchmal arbeite ich auch gleichzeitig an verschiedenen Dingen, zum Beispiel am Bearbeiten eines Tex-Dokuments und Schreiben von Code, und muss den Kompilierungsbefehl letztendlich erneut eingeben, wenn ich von einem zum anderen wechsle.

Ich habe ein wenig elisp geschrieben, um dies zu beheben, indem ich mehrere Kompilierungsbefehle (im Sinne von M-x) definiere, die jeweils einem eigenen Puffer- und Shell-Befehl zugeordnet sind.

Hier ist der relevante Code: https://gist.github.com/ffevotte/6130884

Mit dieser Konfiguration definiere ich 4 Kompilierungsbefehle, die ich an die <F5>- <F8>-Tasten binde , und verwende häufig einen Workflow ähnlich dem folgenden:

  • <f5>(oder M-x compile5): verbunden mitmake -k
  • <f6>(oder M-x compile6): verbunden mitmake -k test
  • <f7>(oder M-x compile7): verbunden mitdoxygen

Jedes Mal, wenn ich Emacs neu starte, muss ich den Kompilierungsbefehl erneut eingeben

Das ist etwas, was ich nicht viel mache (Emacs neu starten). Schauen Sie sich jedoch die compile-commandVariable an. Aus der Dokumentation ( C-h v compile-command):

Letzter Shell-Befehl, mit dem eine Kompilierung durchgeführt wurde. Standard für die nächste Kompilierung.

Manchmal ist es für Dateien nützlich, lokale Werte für diese Variable anzugeben.

(Bitte lesen Sie auch die Warnung zur Verwendung als dateilokale Variable.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.