Neovim 0.10 颜色方案更改影响背景突出显示自动命令

问题描述 投票:0回答:1

升级到 neovim 0.10 后,一些自动命令(例如

autocmd ColorScheme * hi Normal ctermbg=none
)已停止在终端中工作。对我来说,这通过 Windows 终端发生在 Linux 的 Windows 子系统中。下面记录了原因和解决方法作为答案。

neovim
1个回答
0
投票

TL;博士

  • 选项 1:在使用
    gui
    的地方添加
    cterm
  • 选项 2:在 init.vim 中添加
    set notermguicolors

说明

Neovim 0.10 有这个重大变化(来源:https://neovim.io/doc/user/news-0.10.html):

当 Nvim 能够确定主机终端仿真器支持 24 位颜色时,默认启用“termguicolors”。

启用

termguicolors
后,
gui
命令将变得相关,而不是
cterm
。从这个 stackoverflow 答案(cterm 颜色和 gui 颜色有什么区别?):

ctermxx
由控制台版本的 Vim 使用(当
set notermguicolors
时)。
guixx
在 GVim 中使用,如果
set termguicolors
则在控制台中使用,并且控制台显然能够显示 TrueColor。

因此,像

autocmd ColorScheme * hi Normal ctermbg=none
这样的自动命令应该更改为
autocmd ColorScheme * hi Normal guifg=none
,因为现在
gui
部分即使在终端中也是相关的。当然,为了安全起见,可以在自动命令中同时使用
gui
cterm
autocmd ColorScheme * hi Normal guifg=none ctermbg=none

显然,另一个选择是通过

termguicolors
 关闭 
set notermguicolors

© www.soinside.com 2019 - 2024. All rights reserved.