問題タブ [terminfo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ncurses - SIGWINCH、bash、dash、tput、terminfo
tput
と端末サイズの相互作用について少し混乱しています。の動作はtput
、それが呼び出されるシェルに依存しているようです。または、シェルが端末設定の変更を担当している可能性があります。問題を軽減するには、次のことを考慮してください。
ここで、bash では、物事は (ほぼ) 期待どおりに動作し (WINCH ハンドラーが 2 回実行される理由がよくわからないため、ほとんどと言います)、出力はtput
新しい端末サイズに一致するように変更されます。ただし、ダッシュで実行するとtput
、端末のサイズが変わっても出力は変わりません。また、WINCH ハンドラーはダッシュによって遅延しているように見え、次のコマンドが入力されるまで (ただし、実行される前に) 実行されないことに注意してください。ここで何が起こるはずですか?tput
シェルが何をしているか気にしますか?ウインチは関係ありますか?質問は次のとおりだと思います。
tput
端末のサイズはどのようにわかりますか?
また、出力をあまり混乱させたくありませんでしたが、例の各シェルでは TERM が設定され、infocmp $TERM
有効と思われる terminfo の説明が出力されます。(出力が得られるという事実は、それが有効なデータであることを示していると思います!)
terminal - terminfo を使用して前景色のみをリセットする
端末でANSI シーケンスを使用するEsc[39m
と、太字、下線、背景色などの他の属性を変更せずに前景色をクリアできます。例えば:
terminfo 機能からこのシーケンスを取得したいのですが、見つかりません。を試してみるとsetaf 9
、シーケンスを与えることで明るい色に切り替わりますEsc[91m
:
前景色をリセットすることがわかった唯一の機能は ですがsgr0
、他のすべての属性もリセットされます。
terminfo からこれらの機能にアクセスすることは可能ですか?
- デフォルトの前景
Esc[39m
。 - デフォルトの背景
Esc[49m
。