画面コマンドを使用してもViバッファの内容が画面に残ります

画面コマンドを使用してもViバッファの内容が画面に残ります

シェルターミナルでは、

echo $TERM --- prints xterm

これvi somedocで、exitシェル画面からviの内容が消え、以前にシェルが実行したコマンドが表示されます。今まではそんなに良くなった。

これで、sshセッションをバックグラウンドに置いてscreen ssh localhost実行します。Ctrl-A, c

echo $TERM --- prints screen

vi somedocこれを行うと、viexitバッファの内容が画面全体を占有し、bashシェルプロンプトが画面の最後の行に移動します。これにより、clearvimに入り、終了した後に端末が必要になり、端末が使用できなくなります。

export TERM=xtermviを終了すると、端末のバッファ内容が消去されたことを確認するためにこれを試しましたが、うまくいきませんでした。

ベストアンサー1

これは代替画面と呼ばれるxtermの機能です。アプリケーションが代替画面を使用するかどうかは、エスケープシーケンスによって制御されます。通常、これは端末の初期化およびリセットシーケンス(terminfoおよびtermcapsmcupも含む)と組み合わせられます。rmcuptite

xtermプログラム(xtermをエミュレートできる他のプログラムとは異なり)には、代替画面へtiteInhibitの切り替えと代替画面の切り替えを無効にするように指示するXリソース設定(termcap機能の名前にちなんで命名)があります。ただし、必要に応じて切り替えるようにterminfoの説明を選択(または変更)してそれを制御できます。

詳しくはxterm FAQをご覧ください。viを実行しても画面が消えないのはなぜですか?

おすすめ記事