Archive

lazy.nvim と相性が悪かったので colorscheme を nordtheme/vim から shaunsingh/nord.nvim に変更した

タイトル通りなのだけど、先日 neovim のプラグインマネージャーを packer.nvim から lazy.nvim に移行した際、lazy.nvim のウィンドウが色合いがおかしくなり、実用に耐えない状況だった。原因を色々調べてみたところ利用している colorscheme との相性の可能性が高く、 nordtheme/vim(旧: arcticicestudio/nord-vim ) から shaunsingh/nord.nvim に変更したところ諸々解消したというお話

変更前

nordtheme/vim を使った場合

  • 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 カラーで表示されるようになった

shaunsingh/nord.nvim を使った場合

余談

  • もともと利用していた colorscheme は、そもそも以前 arcticicestudio/nord-vim という名前だったと思うのだが、いつの間にか nordtheme/vim となっており長らく変更に追従できていなかった感がある
  • この nordtheme/vim 自体はメンテナンスは活発に行われていそうではあるのだが、 あくまでも想定しているのは vim であって neovim での利用はそこまで想定されていないのかもしれない。