2017-09-21 5 views
0

Ich benutze Vagrant, um eine Entwicklungsumgebung (Ubuntu 16.04 auf einem 17.04 Host) bereitzustellen. Also entwickle ich in Emacs auf meiner lokalen Maschine (17.04), um X und andere Integration zu haben, aber auf dem vagabundierenden Gast kompilieren.Kompilieren mit Emacs innerhalb Vagrant - und Next-Fehler

M-x compile 
vagrant ssh -c "cd /vagrant; make -C . -j 6 -k" 

Und das funktioniert, aber jetzt next-error versagt, weil Emacs sind die make: Entering directory /vagrant am Anfang des Puffers zu lesen.

Gibt es eine Möglichkeit, Emacs den lokalen Namen des Verzeichnisses oder den Namen, den ich für Emacs melden möchte, mitzuteilen? Oder eine andere Möglichkeit, diese beiden zu koordinieren?

ein symbolischer Link ‚/ Vagabund‘ zu machen ist zu aufdringlich ein Hack ...

+0

Wenn Sie irgendwie Tramp verwenden, um in den vagabundierenden Gast zu gelangen (was so einfach sein kann wie "C-x C-f/ssh: Vagrant-Gast-Name:/Vagrant RET"), können Sie Befehle innerhalb des Gastes transparent ausführen. Insbesondere kannst du einfach 'M-x compile RET make -C ausführen. -j 6 -k RET' vom Tramp-Puffer und es sollte einfach funktionieren. – jpkotta

+0

Ich sollte sagen, dass ich mit Landstreicher nicht sehr vertraut bin. Mein Verständnis ist, dass es eine virtuelle Maschine mit einem ssh-Server laufen lassen kann, so dass Sie in der Lage sein sollten, sich vom Host-System aus mit diesem ssh-Server zu verbinden. Wenn ja, können Sie es wie jeden anderen SSH-Server behandeln. – jpkotta

Antwort

0

Dies ist keine perfekte Antwort mit allen Mitteln.

Am Ende habe ich einen Symlink von/vagrant in mein Arbeitsverzeichnis erstellt. Das funktioniert für mich, weil ich das nur für ein Projekt mache und weil es mein Computer ist (also bin ich der einzige Benutzer, der das macht). Es ist daher eine unangemessene Lösung, die über meinen speziellen Fall hinausgeht.

Ich war nicht in der Lage, Landstreicher zu bekommen, um gut für mich zu arbeiten. Vielleicht ist es möglich, aber GNU make möchte wirklich damit beginnen, zu sagen, wo es kompiliert wird, was im Allgemeinen eine gute Sache ist. Tramp beeinflusst nur, wie ich auf den Gast (Vagrant) -Host zugreife.