xtermのサイズ変更によりシェルが混乱する

xtermのサイズ変更によりシェルが混乱する

私はターミナルエミュレータとしてxtermを使用するReflect xを使用しています。ウィンドウを数回最大化して最小化すると、前のコマンドにアクセスしようとするとテキストが壊れます。この質問は次のようによく似ています。これしかし、私はbashの代わりにkshシェルを使用しています。それでは、kshバージョンのソリューションは何ですか?ありがとうございます!

答え1

実際のxtermウィンドウのサイズ変更の問題を解決/解決するには、通常とresizeコマンドを使用する必要があります。reset

指示resize

$ eval `resize`

単独で実行すると、resize列と行の設定が報告されます。

指示reset

$ reset

引用する

答え2

このresetコマンドはサイズ変更を整理するのに役立ちません。

このresizeコマンドは役に立ちますが、問題があります。 2つの主なユースケースがありますresize

  • たとえば、NAWS(Negotiation About Window Size)をサポートしていないシリアルインターフェイスを介して接続している場合は、システムに画面サイズを通知できます。これはよくある質問に役立ちます。
  • 既存使用時に不要に設定されていた環境変数を修正しましたresize。これによりエラーレポートが生成されます。

このresizeプログラムは、もともとtermcapベースのシステムが一般的だったときに書かれていました。一般的なtermcapの説明を見ると、画面がどれだけ大きいかがわかります。 1980年代に作成されたほとんどのtermcapアプリケーションには、画面の実際のサイズを尋ねるシステムコールが含まれていないためです。これは、1980年代後半に情報を取得するためのシグナルとシステムコールが導入されたときにSIGWINCH変わり始めました。

LINESただし、これらのレガシーアプリケーションによって(デフォルトで)および/またはCOLUMNS変数が設定されている場合、その変数がtermcapの説明をオーバーライドするという規則が設定されました。

今まではそんなに良くなった。

LINESただし、一部のアプリケーション(本質的にtermcapアプリケーション、bashなどのシェルを含む)は、実際の画面サイズよりもこれらの変数に注意を払います。COLUMNS

もしあなたなら評価する出力でresizeこれらの変数を設定します。ウィンドウのサイズが変更されたときに、画面サイズの変更に従うプログラムがこれ以上やらないことがわかるまでは問題ありません。

問題ありません。今行ったことを繰り返すだけですresize

一方、ただ実行するとresize いいえ出力を評価して、システムの画面サイズの概念を更新します。

追加資料:

関連情報