Emacs "Start-Server" ändert die Variable "Server-Modus" nicht

736
SabreWolfy

Ich verwende Emacs 23 in Debian Squeeze. ~/.emacsenthält keine serverzugehörigen Befehle.

Ich starte Emacs und trete ein C-h v server-mode, was zurückkehrt nil, da kein Server läuft. Ich gebe dann ein M-x start-server, was einen Emacs-Server in der laufenden Instanz von Emacs startet.

Die Variable server-modeist jedoch immer noch vorhanden, nilwenn ich sie noch einmal überprüfe. Erst nach dem Laufen M-x server-modeerhält die Variable server-modeeinen Wert von t. Ist das ein Fehler oder mache ich etwas falsch?

Der Server-Modus funktioniert nach der Eingabe start-servereinwandfrei. Ich kann emacsclienteine Datei auf dem Emacs-Server öffnen. Ich wollte jedoch eine Variable server-modein der Moduszeile verwenden, um anzuzeigen, ob der Server ausgeführt wird. Wenn Sie jedoch den Server start-servernicht starten, ändert sich der Wert von nicht server-mode. Dies funktioniert nicht wie erwartet.

2

2 Antworten auf die Frage

3
Taras

A better way is to use (server-running-p) from server package. For example

(require 'server) (unless (server-running-p) (server-start)) 
1
SabreWolfy

To get the functionality I need/expect (from a freshly-started Emacs), I run M-x server-mode to start the server, rather than server-start. Starting the server this way changes the value of variable server-mode to t.

I do not understand why starting the server with the documented server-start does not set the variable server-mode to t.