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