web-dev-qa-db-ja.com

Windowsでemacs23.1を起動XP 1回だけ(emacsclientw.exe)

私が持っています (server-start) .emacsファイルで、変数HOME、ALTERNATE_EDITOR(= runemacs.exe)、およびEMACS_SERVER_FILEを設定します。

私が始めるとき

emacsclientw.exe  test.txt

初めて、emacsが起動してバッファを表示することを期待していますtest.txt何が起こるかというと、emacsが開始され、バッファーscratchが表示され、メッセージ行に(New file)と表示され、バッファーtest.txtが存在しますが、まだ表示されていません。 (それは今私を悩ませていることではありません)

今実行すると

emacsclientw.exe test2.txt

同じemacsが使用され、新しいバッファがtest2.txt創造された。

しかし、何が起こるかというと、新しいemacsは、開いている警告バッファーの読み取りで開始されます。

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.

これは、最初のインスタンスがサーバーを起動するように聞こえますが、2番目のインスタンスはサーバーに接続せず、代わりにサーバーを再起動しようとします。

何が問題なのですか?

4
Titule

私も同じ問題を抱えていました。現在、私は次のソリューションを使用しました。

.emacsファイルに追加します:

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

解決策は 開始されていない場合にのみemacsサーバーを開始する方法は?

1
kawu

を使用してEmacsを起動する必要があります

runemacs.exe

その後、あなたは使用することができます

emacsclientw.exe  test.txt
0
Oleg Pavliv

.emacsファイルにすでに(server-start)がある場合は、EmacsWikiを確認することをお勧めします。 MS Windowsではemacsclient の使用に関するいくつかの良い情報があります。

0
jwernerny

見た目からすると、emacsサーバーはemacsclientwが見つからない場所にサーバーファイルを作成しています。問題をさらにデバッグするには、emacsを実行して、EMACS_SERVER_FILEで指定されたサーバーファイルが実際に作成されていることを確認します。

私のセットアップでは、使用する環境変数はHOMEのみです。カスタム変数server-nameはデフォルト値(つまり、server)のままです。これにより、emacsを実行するとファイル$HOME/.emacs.d/server/serverが作成されます。また、この場所がデフォルトであるため、emacsclientw.exeはこのファイルを見つけて、emacsとの通信方法を決定できます。

システムのserver.elをざっと見てみましたが、EMACS_SERVER_FILEについては何もわかりませんでした。非標準の場所を使用する場合、それが問題の原因である可能性があります。

0
Dysaster