水底

ScalaとかC#とかk8sとか

.vimrcでのcolorschemeでハマった

TL;DR

set t_Coしたタイミングでcolorschemeの設定がリロードされる模様

何が起きたのか

colorschemedefaultを設定しつつCursorColumnの色を変えたかったためvimrcを設定したが反映されなかった. 大体以下のような感じ.

.vimrc

colorscheme default

...

highlight CursorColumn ctermbg=black

CursorColumnblackを指定するものの, defaultの色になってしまう. 手動で:highlight CursorColumn ctermbg=blackすると色は変わるのでターミナルは原因ではなさそうだ.

色の設定を確認すると

色に関係する設定を探ってみると, 以下のような順序の設定に気づいた.

.vimrc

colorscheme default

...

highlight CursorColumn ctermbg=black

...

set t_Co=256

どうやら256色対応のために追加したset t_Co=256で色設定がリロードされてCursorColumnに対する個別の設定が上書きされていたようだ. set t_Cocolorschemeの直後に動かすことで解決できた. vimmerには当然の仕様だったのかもしれないが小一時間ハマった. mutableな設定怖い.