
私はターミナルエミュレータとして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
いいえ出力を評価して、システムの画面サイズの概念を更新します。
追加資料:
resize
-環境と端末の設定を現在のxtermウィンドウサイズに設定tset
、reset
-端末の初期化- use_env、
LINES
合計を無視できるライブラリ関数です。COLUMNS
- SIGWINCH処理(サイズ調整イベント)