Emacsclientを使用してMuttでメールを編集したいと思います。
これを.emacsに追加しました
(server-start)
そして.muttrcに私は追加しました
set editor="emacsclient -nw %s"
彼らはうまくいくようです。 2つ目のEmacsを起動すると、サーバーが既に実行されているため、エラーが発生するというメッセージが表示されます。確認する方法(server-start)
サーバーがまだ起動されていない場合のみ?
ありがとう
Emacsデーモンは、非常に簡単な方法で自動的に起動できます。これを.bashrc/.zshrc/whateverに追加するだけです
export ALTERNATE_EDITOR=""
emacsclient
を呼び出すと(--tty
または--create-frame
のいずれかを使用して)、サーバーがまだ実行されていない場合は(emacs --daemon
で)起動されます。
このシェルエイリアスも便利です。
alias e='emacsclient --tty'
Emacs 23以降、これはデーモンモードでEmacsを使用するための好ましい方法です。 (start-server)
は現在ほとんど使用されていません。
このコードは、サーバーが実行されていない場合にのみサーバーを起動します。
(load "server")
(unless (server-running-p) (server-start))
少し遅い答えですが、ここで私のために働く解決策があります。 emacsclientを起動するときはいつでも、emacsclient -a '' -c
-a ''
emacsclientに既存のサーバーへの接続を試行するよう指示します。サーバーが存在しない場合は、サーバーを起動してから接続します。
一緒に問題を回避する
emacs --daemon
emacsがバックグラウンドで実行されるように、任意のシェルまたはターミナルで。この方法では、接続するEmacsサーバーが常に存在するため、emacsclient
は常に満足しています。
これはEmacsであり、必要なときにのみサーバーを起動する関数もありますが、今のところその名前を思い出すことはできません。 --daemon
オプションは、私自身も非常にうれしいです。