タイトル通りなのだけど、先日 neovim のプラグインマネージャーを packer.nvim から lazy.nvim に移行した際、lazy.nvim のウィンドウが色合いがおかしくなり、実用に耐えない状況だった。原因を色々調べてみたところ利用している colorscheme との相性の可能性が高く、 nordtheme/vim(旧: arcticicestudio/nord-vim ) から shaunsingh/nord.nvim に変更したところ諸々解消したというお話
変更前
- background がピンクっぽくなっていて、一応読める内容もあるがヘッダーの選択していない場所の文字は全く読むことが出来ず正直どうにかしたい
対応
原因調査
色々試していくうちに lazy.nvim で以下のように colorschem を neovim 標準で入っている habamax
にすると時折きれいな色になることに気づいた。
require("lazy").setup(
plugins,
{ install = { colorscheme = { "habamax" } } },
)
また、 lazy.nvim で似たような症状が報告されている Issue も発見
この件は vim-solarized が lazy 向けのハイライトを提供していないことが原因で lazy.nvim 側のバグなどではないという感じに読み取れた。
ここまで調べた感じでおそらく nordtheme/vim に関しても似たようなことが言えそうだとあたりがつく。ただ、これ以上は深追いするよりはテーマをいっそ変えたほうが状況は早く解消しそうだと考えたので colorscheme を漁ってみることにした。
選定において、今のところ僕は nord 系の colorscheme が気に入っているので引き続き nord 系の neovim 対応を謳っていそうなものを探したところ以下のものを見つけた
colorscheme を変更
ひとまずサンプルそのまんまで以下のように設定( require("lazy").setup(...)
に指定する plugin に追加)
{ 'shaunsingh/nord.nvim',
lazy = false,
priority = 1000,
config = function()
vim.cmd[[colorscheme nord]]
-- Example config in lua
vim.g.nord_contrast = true
vim.g.nord_borders = false
vim.g.nord_disable_background = true
vim.g.nord_italic = false
vim.g.nord_uniform_diff_background = true
vim.g.nord_bold = false
-- Load the colorscheme
require('nord').set()
end,
},
すると以下のような感じで無事に Nord カラーで表示されるようになった
余談
- もともと利用していた colorscheme は、そもそも以前 arcticicestudio/nord-vim という名前だったと思うのだが、いつの間にか nordtheme/vim となっており長らく変更に追従できていなかった感がある
- この nordtheme/vim 自体はメンテナンスは活発に行われていそうではあるのだが、 あくまでも想定しているのは vim であって neovim での利用はそこまで想定されていないのかもしれない。