Vimのカラースキームを導入し、いい感じの色になったが
「ここの色少し見にくい…」というところを微調整したくなる。
そんなときにどうやって設定すれば良いか解説する。
事前知識
① ハイライトグループ
Vimにはハイライトグループという考え方があり、
Vim内で見える文字列は全て何らかのハイライトグループに分類され
そのハイライトグループに適用されている色設定で表示される。
つまり
- 変えたい箇所がどんなハイライトグループに属しているか
- ハイライトグループに対してどのように色を変えるか
が分かれば簡単にカスタマイズすることができる。
② 色を指定するための項目
色を指定するためには
- cterm or gui
- 文字色(fg) or 背景色(bg)
の組み合わせを知っておく必要がある。
文字色を変えたい | 背景色を変えたい | |
ctermを変えたい | ctermfg | ctermbg |
guiを変えたい | guifg | guibg |
VimをCUI上で操作しているなら、ctermfg
とctermbg
だけ変更しておけば良い。
カラースキームを自作したい場合はguifg
,guibg
の方も明示的に指定した方が良い。
変えたい箇所のハイライトグループを特定する
「ここの色を変えたいんだけど、どういうハイライトグループなのか分からない」というときは
を利用して調べると良い。
コード内の文字列をクリックすると、どんなハイライトグループに分類されているか分かる。
もしくは、ヘルプからも確認することができる。
" プログラミング言語でよく使われるカテゴリ(コメントアウト、if文、定数、文字列など)
:help group-name
" ステータスライン、補完のポップアップ、その他文字列など
:help highlight-groups
:help group-name
の場合、下記のようになっていて分かりやすい。

設定ファイルに書き込む前にどんな見た目になるか確認する
最終的には設定ファイルに書いて保存するが、
その前に色を確かめながら微調整したいはずだ。
その場合はVimのコマンドラインモードから直接変更して検証するのが良い。
256 Colors - Cheat Sheet - Xterm, HEX, RGB, HSL | DITig
試しに上記リンクを参考にしながら、.vimrc
のコメントアウト色を変更してみる。

:highlight Comment ctermfg=57
ハイライトグループ「Comment
」の文字色を57番に指定すると、次のように色が変わることが確認できる。

設定ファイルに書き込む
納得のいく色味になったら、.vimrc
に記述する。
カラースキームを途中で変更しても適切に反映されるように
ColorSchemeのイベントが発生した時に設定するよう記述する。
autocmd ColorScheme * highlight Comment ctermfg=57
まとめ
- ハイライトグループは下記で確認
- https://bytefluent.com/vivify/index.php
- 256色は下記で確認
- https://jonasjacek.github.io/colors/
- 一旦vim起動中に変更してみて微調整する
- 色が決まったら
.vimrc
に書き込む