ターミナルがラインを切り取るか巻き戻すかを検出します。

ターミナルがラインを切り取るか巻き戻すかを検出します。

私が理解しているように、端末エミュレータの「伝統的な」動作は、ウィンドウが狭くなると長い行を切り取ることであり、一部の端末はサイズが変更されたときに内容を再圧縮することです。

Bashスクリプト(または最後の手段としてCプログラム)が端末が使用する2つの動作のうちどれを検出できますか?

答え1

Bashを使用している場合は、自分の動作を自分で設定したらどうでしょうか?

たとえば、次のようないくつかのオプションがあります。

shopt -s checkwinsize

bashにwinsizeをチェックし、適切なアクションをとるように指示します。マニュアルページには次のように記載されています。

設定されている場合、bashは各コマンドの後にウィンドウサイズをチェックし、必要に応じてLINESとCOLUMNSの値を更新します。

列と行の数を確認して設定することもできます。

echo $COLUMNS; echo $LINES

必要なものではない場合は、次のように設定できます。

COLUMNS=75;
LINES=20;
export COLUMNS LINES;

bashスクリプトでこれを行うことができます。

関連情報