再接続されたスクリーンセッションで実行されているvimサーバーに接続する方法


1

私は通常ssh -X、リモートのLinuxボックスに、起動してサーバーモードでGNU screen実行vimしますscreenscreenセッションをデタッチおよび再アタッチした後、vimサーバーにファイルを送信できなくなりました。再screen接続されたセッションが、vim通信のためにサーバーによって使用されるX-windowサーバーへの接続を失ったためだと思います。とにかくこの問題を解決する方法はありますか?

回答:


1

これは、新しいssh接続が環境変数$DISPLAYまたは$XAUTHORITY環境変数、あるいはその両方に新しい値を使用しているのに、スクリーンセッションが元のssh接続の値を使用しているためです。

次の内容のスクリプトを作成し、それをスクリーンセッションに再アタッチする前に実行してから、スクリーンセッション内の各シェルで実行できます。 source ~/.Xsetup

#!/bin/sh
exec > $HOME/.Xsetup
echo DISPLAY=$DISPLAY
echo XAUTHORITY=$XAUTHORITY

これにより、生成されたスクリプトファイルのソースとなるシェルに新しい値がコピーされます。しかし、スクリーンセッション自体にはまだ古い値があり、新しいプログラムが開始された場合も同様に取得されます。これらの値は、.Xsetupファイルを読み込んだ後に次を実行することで修正できます。

screen -X setenv DISPLAY $DISPLAY
screen -X setenv XAUTHORITY $XAUTHORITY

ありがとうございました。しかし、「スクリーン」ですでに実行されている「vim」サーバーはまだ古い環境変数を使用していると思います。「〜/ .Xsetup」に保存されている新しいものを使用するように指示するにはどうすればよいですか?
ジン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.