⛳
neovimのCursorの色が変わらないと思ったらターミナルのカラースキームのせいだった話
タイトルの通りです。
vimで現在の文字位置の背景色を変えるためにhighlightコマンドでCursorの背景色を変更しようとしましたが、 変更できませんでした。
原因はターミナルの背景色でした。
経緯
解決策が気になる方は飛ばしてください。
vimで現在の文字位置の背景色を変えるコマンドと言えば、higlightコマンドがあります。
現在の文字をハイライトするためにはCursorのハイライトグループの背景色を変えればよいと思い、以下のように変更しました。
highlight Cursor guibg=#ff0000 guifg=#ffffff ctermbg=red ctermfg=white
init.luaの場合は以下です。
vim.cmd("highlight Cursor guibg=#ff0000 guifg=#ffffff ctermbg=red ctermfg=white")
そして、コマンドモードで背景色を確認します。
:hi Cursor
無事、反映されていそうです。

しかし、実際にはCursorの背景色は赤にならず、目立ちにくい色のままです。

ターミナルのカラースキームの変更
結論、weztermの色の背景色の設定が原因でした。
config.color_scheme = 'neobones_light'
これをコメントアウトするとハイライトが乗るようになりました。
よく見たら、現在のカーソル位置とターミナルのカーソル位置の色が同じです。
before


after


代替案
ただ、vim上で解決したい気持ちもあります。
代替案として、ハイライトを現在の行と列の両方につけると、交差する部分がハイライトになります。
set cursorLine
set cursorcolumn
init.luaの場合は以下です。
vim.cmd("set cursorLine")
vim.cmd("set cursorcolumn")
参考
Discussion