Emacs 23.1 unter Windows XP nur einmal starten (emacsclientw.exe)

1238
Titule

Ich habe (server-start)in meiner .emacs-Datei die Variablen HOME, ALTERNATE_EDITOR (= runemacs.exe) und EMACS_SERVER_FILE gesetzt.

Wenn ich anfange

emacsclientw.exe test.txt 

Beim ersten Mal erwarte ich, dass Emacs startet und den Puffer anzeigt. test.txt Was passiert, ist, dass Emacs gestartet wird und der Puffer- Scratch angezeigt wird. Die Messsage-Zeile sagt (Neue Datei) und der Puffer test.txt ist vorhanden, wird jedoch noch nicht angezeigt. (Das ist nicht wirklich was stört mich gerade jetzt)

Wenn ich jetzt ausführe

emacsclientw.exe test2.txt

Ich erwarte, dass derselbe Emacs verwendet wird und ein neuer Puffer test2.txterstellt wird.

Was aber passiert ist, dass ein neuer Emacs mit einem offenen Warnpuffer eingelesen wird:

Warning (server): Unable to start the Emacs server. There is an existing Emacs server, named "server". To start the server in this Emacs process, stop the existing server or call `M-x server-force-delete' to forcibly disconnect it. 

Das klingt für mich, als würde die erste Instanz einen Server starten, die zweite stellt jedoch keine Verbindung zu ihm her, sondern versucht, den Server erneut zu starten.

Was könnte das Problem sein?

4

4 Antworten auf die Frage

1
kawu

Ich hatte das gleiche Problem. Derzeit habe ich folgende Lösung verwendet.

Fügen Sie Ihrer .emacs-Datei hinzu:

(load "server") (unless (server-running-p) (server-start)) 

Die Lösung kommt von So starten Sie den emacs-Server nur, wenn er nicht gestartet ist?

0
Oleg Pavliv

Sie sollten Emacs mit starten

runemacs.exe 

Danach können Sie verwenden

emacsclientw.exe test.txt 
Danke, aber - nein, es hat den gleichen Effekt. Und wenn es funktionieren würde, wäre es nicht das, was ich brauche, da ich emacs immer auf dieselbe Weise starten muss. Titule vor 13 Jahren 0
0
jwernerny

Wenn Sie bereits eine (server-start).emacs-Datei haben, sollten Sie das Emacs-Wiki überprüfen. Es gibt einige gute Informationen zur Verwendung von emacsclient unter MS Windows .

0
Dysaster

Wie es aussieht, erstellt der emacs-Server seine Server-Datei an einem Ort, an dem er emacsclientwnicht finden kann. Um das Problem weiter zu debuggen, können Sie emacs ausführen und sehen, dass die angegebene Serverdatei EMACS_SERVER_FILEtatsächlich erstellt wird.

In meinem Setup ist die einzige Umgebungsvariable, die ich verwende HOME. Die benutzerdefinierte Variable server-namebleibt auf ihrem Standardwert (dh server). Dadurch wird die Datei $HOME/.emacs.d/server/servererstellt, wenn Emacs ausgeführt wird. Und da dieser Speicherort die Standardeinstellung emacsclientw.exeist, kann er diese Datei finden und bestimmen, wie mit Emacs gesprochen wird.

Ich hatte einen kurzen Blick server.elin mein System und konnte nichts EMACS_SERVER_FILEdavon sehen. Wenn Sie einen nicht standardmäßigen Speicherort verwenden, kann dies die Ursache Ihrer Probleme sein.