升级到nvim v0.8.0后,配色方案失效了,为什么会改变t_Co?

3
今天我从neovim 0.7.2升级到0.8.0,但我的颜色方案出现了问题。似乎有些颜色是正常的,而有些则不是。
我正在使用这个颜色方案:https://github.com/arzg/vim-colors-xcode/blob/master/colors/xcodelighthc.vim 以下是:highlight命令的输出: 奇怪的是,例如我在使用的颜色方案中定义了此颜色: hi Pmenu guifg=#000000 guibg=#f4f4f4 gui=NONE cterm=NONE 但高亮显示命令显示为: Pmenu xxx ctermfg=0 ctermbg=225 guibg=LightMagenta guibg=#f4f4f4guibg=LightMagenta 我已经检查了更改日志以寻找与颜色方案相关的破坏性变化,但未发现任何内容。
这种奇怪的行为似乎是由以下if语句引起的:
let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 2
if s:t_Co >= 256

行数: https://github.com/arzg/vim-colors-xcode/blob/master/colors/xcodelighthc.vim#L372

更新后,s:t_Co >= 256 的结果为false,因此颜色没有正确应用。


我在使用fzf时遇到了同样的问题,从0.6和0.7.2更新到0.8似乎会导致它出现故障。你对这个问题有进一步的了解吗? - user2108150
@UltimateHawk 我已经将这一行注释掉了 https://github.com/arzg/vim-colors-xcode/blob/master/colors/xcodelighthc.vim#L372 现在它又可以正常工作了。 - nacholibre
1个回答

1
git bisect告诉我neovim在PR #20375中破坏了对exists('&t_Co')的向后兼容性。在合并该提交后,exists('&t_Co')的返回值从1变为0,甚至内置的配色方案也受到影响

编辑:我已经在#21499报告了此问题,现在已在夜间构建和即将发布的0.8.2版本中修复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接