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
で確認可能。