rcmdnk's blog

20240520_neovim_200_200

News-0.10 になって変わってしまった colorschemeを以前のように戻す方法。

termguicolors

0.10からターミナルで立ち上げるCUI上のNeovimでも 24-bitのtrue colorが有効な環境では termguicolorsが有効になり guifgなどで設定したGUI用の色が使われるようになりました。

これを戻すには.config/nvim/init.vim

1
set notermguicolors

を設定しておきます。

ほとんどの場合、GUI用の設定はCUI用の設定にプラスアルファで より繊細な色設定がされている状態で、 またGUI用の方をメインとして作られていることも多いので これに関しては無理に戻す必要はないかもしれません。

ただし、場合によってはNeovimが本来true colorをサポートしていない状態なのに 勘違いして(実際には何らかの設定がTrue colorを示す状態になってしまっていて)termguicolorsが有効になっていることがあるので その場合はnotermguicolorsを設定する必要があります。

GUI用の設定と共有してset termguicolorsを明に設定するのを避けたい場合は その原因を探ってNeovimがtermguicolorsを設定しないようにする必要があります。

colorscheme vim

Neovim 0.10からdefaultのcolorschemeが変更されました。

以前の同じcolorschemeにするには

1
colorscheme vim

と、vimというcolorschemeを指定します。

また、いろいろな設定を一旦リセットしてからcolorschmeを設定するために

1
2
3
4
hi clear

hi CursorLine ...
hi ColorColumn ...

のように一旦リセットしてからhighlightを設定していることもあるかと思います。

0.10からは以前と同じようにするには

1
2
3
4
5
hi clear
colorscheme vim

hi CursorLine ...
hi ColorColumn ...

のようにclearした後にvimなcolorschemeを設定する必要があります。

The new default colorscheme breaks legacy vim colorscheme: workarounds and future steps? · Issue #26378 · neovim/neovim

ただし、別途colorschemeを導入している場合にはちょっと面倒です。

colorschmeファイルの中でも、ほとんどの場合colorschmeファイルの先頭で

1
2
3
4
hi clear
if exists('syntax_on')
  syntax reset
endif

みたいな感じでcolorschemeをリセットしています。

なのでcolorschmeを設定する前にcolorschme vimを設定しても意味ないですし、 後からしても設定したcolorschemeが上書きされてしまいます。

なのでcolorschme自体をアップデートする必要があります。

1
2
3
4
5
6
7
hi clear
if filereadable($VIMRUNTIME . '/colors/vim.lua')
  source $VIMRUNTIME/colors/vim.lua
endif
if exists('syntax_on')
  syntax reset
endif

こんな感じでNeovim 0.10で導入されたruntimeの中にあるcolors/vim.luaファイルを読み込む必要があります。

自分の環境ではもともと.vimrcに書いていた設定をプラグイン化したものを使っているので、 そのプラグインをアップデートすることで対応しました。

feat: add support for nvim >= 0.10 by conditionally sourcing vim.lua … · rcmdnk/rcmdnk-color.vim@e2b8c30

colorschemeプラグインは頻繁に変更されるものでもないので よく使われているものでも長いこと更新されていないものも多く、 Neovimへの対応ということもありなかなか対応されないものもあるかもしれません。

その場合は他のcolorschemeを使うか、 自分でforkして上の様な対応して使うかなどする必要があります。

Sponsored Links
Sponsored Links

« Neovim 0.10でのtruecolorの取り扱いの変更に対する対応 HHKB Studioの無刻印キートップ導入 »

}