ターミナルマジック 内部で機能します。
Dockerコンテナーで遊んでいる間、環境変数$TERM
設定されていません。これにより、vimやtmuxのような奇妙な外観のコンソールアプリケーションが発生しましたが、CTRL + l(画面のクリア)も無視されました。
すべての機能はかなり確信しています 画面の部分的な更新、色、画面のリセットなどのコマンドは、エスケープコードを使用して実現されますよね?
では、この変数はどこで解釈され、たとえば、適切な値を設定した場合、CTRL + 1を使用してターミナル画面をリセットできますか?誰がチェックする たとえば、どの色がサポートされていますか(xtermとxterm-256color)?シェル?アプリケーションまたはncursesのようなライブラリ?そして、可能な値/端末タイプはどこで定義されていますか?
承認された回答:
$TERM
terminfoシステムによって読み取られ、解釈されます。 terminfoは、ほとんどのシステムで/usr/share/terminfo
にある端末の説明のデータベースも指します。 。 $TERM
そのデータベースのエントリの1つと一致する必要があります。機能が少ないtermcapと呼ばれる古いライブラリもありましたが、terminfoがそれに取って代わりました。最新のシステムでは、terminfoはncursesライブラリの一部です。
アプリケーションは通常、tigetstr()
などのライブラリ関数を使用して端末機能を直接フェッチします。 または、画面のレイアウトを管理するために、より高いレベルのcursesインターフェイスを使用します。いずれにせよ、$TERM
そして、terminfoデータベースが参照されます。