Derzeit lautet mein Kompilierungsbefehl wie folgt:
cd ~/somedir && ./somescript.sh
Dies verhindert, dass Emacs die Datei findet, in der ein Fehler auftritt (und öffnet).
Natürlich kann ich M-x cd
manuell ausführen, aber gibt es eine Möglichkeit, den Puffer anzuweisen, sein aktuelles Verzeichnis programmgesteuert zu ändern?
compilation-mode
Thomas Moulard
quelle
quelle
Antworten:
Schließlich gab ich es auf, mich auf das aktuelle Verzeichnis zu verlassen, da es zu aufdringlich war und andere Dinge wie ido, wo das Ende davon betroffen war ...
Stattdessen benutze ich mein Build-Verzeichnis hinzugefügt
compilation-search-path
Gefunden bei dieser Frage: Wie kann man den Pfad anpassen, den Emacs 'Kompilierungsfehler aus dem Kompilierungspuffer erhält?
Die Frage erklärt auch, dass der Verzeichnisvergleicher das Verzeichnis automatisch ändern kann, wenn bestimmte Zeichenfolgen ausgegeben werden:
Dies ist anscheinend auch anpassbar.
quelle
/path/to/build
.Sie können einfach einen Dired-Puffer des Verzeichnisses erstellen, in dem Sie den Kompilierungsbefehl aufrufen möchten, um als Anker zu dienen. Wenn Sie kompilieren möchten, wechseln Sie in den Dired-Puffer und führen Sie den Kompilierungsbefehl aus.
compile
Der Befehl wird in diesem Verzeichnis des Dired-Puffers ausgeführt. Dies hat den Vorteil, dass Sie M-x cdzum Kompilieren keine Verzeichnisse benötigen oder durchlaufen müssen.Bei Verwendung
projectile
dieses Befehls wirdprojectile-compile
der Kompilierungsbefehl automatisch im Projektstamm ausgeführt, der von erkannt wirdprojectile
.quelle
Dieser alternative Befehl sollte den Trick machen:
Alternativ können Sie, nachdem Sie die Kompilierung mit dem regulären
compile
Befehl ausgeführt haben,(setq default-directory "~/somedir")
im*compilation*
Puffer auswerten . Das sollte dazu führen, dass die Fehlernavigation funktioniert, kann aber dazu führen, dassrecompile
Freunde nicht mehr das Richtige tun.quelle