emacsがディスプレイを開くことができません

emacsがディスプレイを開くことができません

最近、これが起こり始めました。私は次を実行します /usr/bin/emacsclient --alternate-editor="" --no-wait -c

エラー:表示:0.0を開くことができません。

他のアプリはこれを行いません。

出力xdpyinfo

name of display: 0.0
version number: 11.0
vendor string: The X.Org Foundation
vendor release number: 10707000
X.Org version: 1.7.7

編集する: 以前のEmacsサーバー/デーモンがまだ実行中であることがわかりました。

$ ps ux | grep [e]macs
richard   2642  0.0  0.8  38788 24984 ?        Ss   Jun22   0:25 emacs --daemon
richard   7512  0.0  0.6  33896 19720 ?        Ss   Jun23   0:05 emacs --daemon
richard  15458  0.0  0.6  32836 19076 ?        Ss   09:40   0:01 emacs --daemon

ログアウトするときにオフにする方法を知っていますか?

ベストアンサー1

追加情報を見ると、あなたのemacsclientが「間違った」emacsサーバーに接続されているようです。 (または最初のものを起動することをお勧めします。emacs --daemon通信ソケットがすでに使用されているため、後続の呼び出しはサーバーを起動できません)だから失敗します。

非グラフィック/ttyモードでサーバーに接続し、次のオプションを使用して端末で-nwemacsclientを実行すると、どのemacsプロセスがサーバーを実行しているかを確認できます。

emacsclient -nw

emacsclientを介してLISPコードを実行することで、実行中のemacsを終了できます。

emacsclient -t --eval '(progn (server-save-buffers-kill-terminal 1) (save-buffers-kill-emacs 1))' 

どこ:

  • このオプション(または-tエイリアス)は、EmacsがXディスプレイに接続するのを防ぎます。-nw--tty
  • server-save-buffers-kill-terminalEmacsに停止するように指示する前に、emacsclientを切り離してください(そうでない場合は、確認プロンプトが表示されます)。
  • このsave-buffers-kill-emacs関数は通常、Emacsに確認を要求しないように指示C-x C-cする引数とともに呼び出されます。1

また、私はあなたがあまりにも実行している理由emacs --daemonは、次のオプションを使用してemacsclientを呼び出すためだと思います--alternate-editor=""マニュアルページ emacsclient(1)指摘した:

(代替)EDITORの値が空の文字列の場合、Emacsはデーモンモードで起動し、emacsclientはそれに接続しようとします。

emacs --daemon.gnomercXセッション起動スクリプト(GNOMEセッションの設定など)からの起動は、セッションの終了時にセッションマネージャにemacsデーモンの終了を処理させるためのより良いオプションです。

おすすめ記事