Ich versuche also, Emacs als Server einzurichten, aber ich habe Probleme, es vom Terminal aus zum Laufen zu bringen. Wenn ich emacs --daemon auf einem Terminal ausführe, kann ich eine Verbindung herstellen, wenn ich den emacsclient über dasselbe Terminal ausführe. Wenn ich jedoch ein neues Terminal öffne, findet der emacsclient den Server nicht. Die Dinge scheinen gut zu funktionieren, wenn ich emacsclient vom Launcher aus starte.
ich renne
emacsclient -a '' -t
Der Kunde sagt:
emacsclient: can't find socket; have you started the server?
To start the server in Emacs, type "M-x server-start".
Irgendwelche Ideen, was passieren könnte?
Ich benutze Ubuntu 17.04 mit Gnome / i3, wenn das wichtig ist.
quelle
emacs --daemon
und er hört immer/tmp/emacs1000/server
automatisch auf diesen Socket. Ich bin mir sicher, dass es einen weniger hackigen Weg gibt, bei dem der/tmp/emacs1000/server
Speicherort ime
Alias nicht fest codiert wird und der immer funktioniert, unabhängig davon, wo der Socket vom Server erstellt wird (und wahrscheinlich soll emacsclient dann auch so funktionieren ohne die--socket-name
Option aufgerufen ), aber es hat immer bei mir funktioniert.Aus unergründlichen Gründen ist mir dies gerade bei einem FC28-Upgrade meines Laptops passiert. Sogar das Straffen hat nicht geholfen. Nachdem ich mehrere Links (einschließlich) durchgesehen hatte, kam ich zu folgenden Zeilen:
Dies codiert nicht den '1000'-Teil (der zufällig die ID des ersten Benutzers ist, der auf diesem bestimmten Computer erstellt wurde, duh) und berücksichtigt TMPDIR. Das Exportieren von EMACS_SERVER_SOCKET ist niedlich, aber nutzlos, da emacsclient nicht zulässt, dass dies von einer env-Variable aus konfiguriert wird (unangemessen, IMHO).
Wenn die volle Kontrolle bevorzugt wird, kann man sagen:
Irgendwo vor dem Serverstart in ihren .emacs und verwenden Sie "~ / .emacs.d / server-dir / server" als Server-Socket-Namen für den oben genannten Alias. Das Server-Verzeichnis wird automatisch mit den richtigen Berechtigungen 0700 erstellt, sofern es noch nicht vorhanden ist.
quelle
Stellen Sie sicher, dass Sie dieselbe Version von
emacs
und verwendenemacsclient
.Wenn mein System-Emacsclient anstelle meiner benutzerdefinierten Build-Emacs verwendet wird, wird ein ähnlicher Fehler angezeigt:
Mit der richtigen Version:
quelle
Nicht unbedingt die Antwort, nach der Sie suchen, aber ich habe in genau demselben Setup immer nur emacsclient -c oder emacsclient -t verwendet. Das heißt, ich starte den Server nicht manuell, der erste Aufruf von beiden startet den Server und jeder nachfolgende Aufruf stellt eine Verbindung zum Server her.
quelle
Erstellen Sie ein Skript mit der Aufschrift "myemacs" wie folgt:
Wenn Sie es ausführen, wird ein Dämon erstellt, falls nicht vorhanden, und eine Verbindung zum Dämon hergestellt, wenn ein Dämon vorhanden ist.
quelle