4. termcap と terminfo の基本概念

/etc/termcap ファイルは、ターミナルの機能 ( terminal capability ) を 列記したテキストファイルです。多くのアプリケーションが termcap ファイルを使って、スクリーン上でのカーソル移動やその他の スクリーン関係の処理を行っています。tcshbashvi 等、すべてのカーソルベースの アプリケーションは、termcap データベースを使用して います。

termcap データベースには、各種のターミナルタイプが 記述されています。実行時には、環境変数 TERM によって ターミナルの振る舞いが選択されます。これは、termcap の エントリのひとつを指定することで、アプリケーションがそこに記述されたデータ を利用するという仕組みになっています。

このデータベース内では、ターミナルの個々の機能が、二文字のコードと、 必要な効果を得るための実際のエスケープシーケンスとで表記されています。 異なる機能を区別する際には、分離用の文字としてコロン (":") が使われています。 例えば、ビープ音は、"bl" というコードで表記され、通常は、" bl=^G " というふうに記載されます。このシーケンスの意味は、 Ctrl-G という文字 (ASCII BEL) を出力する際にビープ音を鳴らすというものです。

bl 機能に加えて、vb 機能というのが あります。これが、ビープ音を視覚的に表す (visible bell) 際に 使われるコードです。ただ、vb は、通常、termcap ファイルの linux エントリには記述されて いません。

最近のアプリケーションやライブラリでは、termcap の かわりに terminfo が使われています。terminfo データベース では、ターミナルタイプごとにひとつのファイルを使うようになっていて、 それらは /usr/lib/terminfo 以下に置かれています。 そして、ディレクトリ構造を分かり易くするために、それぞれのターミナルタイプ の記述ファイルは、そのターミナル名の頭文字の付いたディレクトリ内に保存 されています。それゆえ、linux エントリは、/usr/lib/terminfo/l/linux ファイルとなります。terminfo エントリを構築するには、termcap の記述ファイルを「コンパイル」する必要があります。詳細は、tic プログラムとそのマニュアルページをご覧ください。