TERM = vt100でtputが自動的に失敗する理由

TERM = vt100でtputが自動的に失敗する理由

私はmacOSでzshとiTermをターミナルエミュレータとして使用しており、私の環境ではデフォルトでTERM=xterm-256colorこれを行います。

実行すると、tput setaf 3コード0で終了します。

設定しTERM=vt100て実行すると、tput setaf 3コード1(失敗を示す)で終了します。

なぜですか?

答え1

vt100気づかずに失敗する機能setaftput定義はデータベースにありますterminfo(5)

% TERM=xterm-256color infocmp | grep setaf
        setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
% TERM=vt100 infocmp | grep setaf
% 

Avt100はかなり古く、マニュアルにはサポートされている色などの素晴らしい内容は記載されていません(明らかにvt100で購入できるフロアマットは他の色で提供されています...)。

答え2

VT100はカラーで作られたことがありません(参照:ncurses FAQ)。したがって、端末記述には対応する機能が不足し、次のように提供されます。ファイルに書き込む、tputはエラーを返します。

1976年にvt100がリリースされたとき、カラーは高価な機能であり、一般端末では使用できませんでした。数年後、色は標準化されました(少なくともECMA-481979年の第2版はこの情報を提供します。最初の版は使用できません。

関連情報