guicolorscheme.vimと言うプラグインがある。
これを入れると、88色か256色のターミナルでGUI用に作られたカラースキームを使用できる。
:GuiColorScheme {color_name} と言うコマンドでカラースキームを読み込むと、その場でカラースキームを解析して適用してくれる。
CUIの256色環境を存分に堪能できる有難いプラグイン。
ところが先日
バージョンアップされた際、私が普段使ってるカラースキームを読み込むと色が変になるようになってしまった。なんてこったい。
そこで
大幅に書き直した。はっきり言って #RRGGBB -> termの色番号の部分以外は全くの別物。
よほど特殊な書き方をしているカラースキーム*1以外は読み込めると思う。
「以前guicolorscheme.vim使ったけど普段使ってたカラースキームが読み込めなかったから窓から投げ捨てた」って人はこちらを試して見てほしい。
オプション
g:guicolorscheme_color_table
辞書。色名とそれに対するRGB値(#RRGGBB)、cterm=で認識する名前(:help cterm-colors)、もしくは色番号との対応を設定しておく。
とは言っても、GUIで使える色名は大量にある。そこで…
rgb.txt
を、 &runtimepath 内のどこかに置いておくと、最初に見つけた rgb.txt を読み込んで自動で g:guicolorscheme_color_table を構築する。
rgb.txt は GUI 版の Vim なら $VIMRUNTIME/rgb.txt にある。あとはこのあたりを参照。
&runtimepath 内のどこか、なので、 ~/.vim/rgb.txt とかに置いておいてもOK。
.vimrc 内で書いた設定は構築された値を上書きするので、設定しておいても問題ない。
特に、bg fg background foreground は Vim が特別に認識するキーワードなので、これらを使ってるカラースキームの場合設定しておく必要がある。
let g:guicolorscheme_color_table = {'bg' : 'Black', 'fg' : 'Grey'}
256色ライフをお楽しみください
2009/03/30 追記
他にも読み込めないカラースキームのパターンをいくつか。
仕組みとしては、カラースキーム全体のgui= guifg= guibg= の部分をうまい具合に書き換えて全体を適用、と言う感じなので、
のようなものはうまく動かない。
そして、ついさっき知った*2のだがCSApproxなるプラグインがあるらしい。
こいつは+GUIの環境でしか動かないが、実際に適用されたハイライト情報からCUI用のカラースキームを再適用するので、+GUIがある環境なら断然こちらの方が再現率が高い。しかも変換したカラースキームをファイルに書き出す機能(SnapShot)まである。
もっと早く知りたかった…完全にリサーチ不足です。
でも私の普段使ってるLinuxの環境は+GUIどころかXすら入っていない。GUIでスナップショットを取っておくと言う手もあるけど、気まぐれで別のカラースキーム使いたい時とかは面倒だよね。
…まあよほど特殊な事情がない限りはCSApproxを使えばいいと思うよ!