Cent OS 5.8 に screen-256color を解釈させる

TERM=screen-256color にしている tmux から Cent OS 5.8 にリモート接続していろいろやろうと思ったら、プロンプトのカーソルが表示してある文字に重なったり、vim のハイライトが 16 色になったりと残念なことになってしまった。

これは Cent OS 側に screen-256color の定義ファイルがないのが問題らしい。実際、/usr/share/terminfo 以下に screen-256color のファイルはない。

で、これを直そうといろいろやった結果、Cent OS 側で xterm-256color の定義を screen-256color でも使うようにすれば色の問題は解決した。

やり方

Cent OS 側で適当なところに以下の screen-256color.terminfo ファイルを作る。

screen-256color|GNU Screen with 256 colors,
       use=xterm-256color,

それを tic コマンドでコンパイルして登録。$HOME/.terminfo/s に配置される。

tic screen-256color.terminfo

余談

既にある terminfo は infocmp コマンドでどういう設定になってるか確認できる。

infocmp screen

自分の端末が 256 色に対応しているかは

wget http://frexx.de/xterm-256-notes/data/256colors2.pl
chmod 744 256colors2.pl
./256colors2.pl

で確認可能。

f:id:ks0608:20120428144704p:plain