Ich möchte Emacs auf einem Computer ausführen können:
server $ emacs --daemon
Und dann verbinden Sie sich von einem anderen:
local $ emacsclient -c server
Ist das möglich? Wenn das so ist, wie?
daemon
emacsclient
networking
liszt
quelle
quelle
Antworten:
Sie können mit emacsclient keine Verbindung zu einer Emacs-Instanz herstellen, die auf einem Remotecomputer ausgeführt wird. Dieses Client-Server-Konzept bezieht sich auf (lokale) Prozesse, nicht auf Netzwerkknoten. Sie können sich jedoch mit verschiedenen Netzwerktechnologien beim Remotecomputer anmelden, eine Verbindung zu einem dort ausgeführten Emacs-Server herstellen und den Bildschirm des Emacsclients lokal anzeigen. Abhängig vom verwendeten Betriebssystem kann die Vernetzung über SSH (Terminal / X-Forwarding), VNC, RDP usw. erfolgen.
UPDATE :
Wie einige wiesen darauf hin, hat emacsclient tatsächlich die Möglichkeit, über TCP eine Verbindung zum Server herzustellen. Emacsclient sollte jedoch niemals remote verwendet werden. Die TCP-Socket-Option ist aus Gründen der Kompatibilität mit Nicht-UNIX-Systemen (dh Betriebssystemen, auf denen keine UNIX-Domain-Sockets verfügbar sind, wie Windows) erforderlich.
quelle
Wahrscheinlich nicht das, wonach Sie gefragt haben, aber vorausgesetzt, Sie haben ssh-Setup mit X-Forwarding, könnten Sie emacsclient auf dem Server starten und an Remote-DISPLAY weiterleiten. (Haftungsausschluss: Code direkt in das Webformular eingegeben)
quelle
Dies ist möglicherweise nicht das, was Sie wollen, aber nur für den Fall, ob es Ihnen irgendwie helfen kann.
Normalerweise arbeite ich in einer virtuellen Maschine, die mit Vagrant gebootet wurde. Ich habe mein
~/.emacs.d
Verzeichnis zwischen meiner Maschine (lokal) und der virtuellen Maschine (remote) synchronisiert und Folgendes in dieVagrantfile
Datei eingefügt:Außerdem startet meine Emacs-Konfiguration beim Start automatisch einen Server:
Wenn ich also einen Emacs-Server in der virtuellen Maschine starte, kann ich folgendermaßen eine Verbindung dazu herstellen:
Hostname der virtuellen Maschine ist der Hostname der virtuellen Maschine, die ich in meiner ~ / .ssh / config konfiguriert habe:
Hinweis: Vor dem Starten des Emacs-Servers in der virtuellen Maschine überprüfe ich, ob die
~/.emacs.d/server/server
Datei nicht vorhanden ist (wenn ich sie nur entferne), da sie sonst nicht funktioniert.quelle
.ssh/config
Datei festgelegt ist. Sie müssen nur dieHost
. Im Zweifelsfall können Sie die Ausgabe des Befehls: verwendenvagrant ssh-config
, um Ihre~/.ssh/config
Datei festzulegen.emacsclient und TRAMP
Öffnen Sie automatisch entfernte Dateien in lokalen Emacs
Ich habe Erfolg mit der ersten Lösung gehabt. Das zweite scheint einfacher zu sein, ich muss es erst noch ausprobieren.
quelle