如何修复NeoSolarized配色方案下括号、分号显示为红色的问题
NeoVim Treesitter 括号分号标红问题解决方案
这一问题是NeoSolarized配色与TreeSitter语法高亮的标点符号高亮组适配异常导致的,TreeSitter新增的@punctuation系列高亮组未被主题正确匹配,默认调用了红色样式。
方案1:手动配置高亮组(最通用)
根据你使用的配置文件类型添加对应代码即可,配色使用NeoSolarized原生灰色值,和未装TreeSitter时的显示效果一致:
- Lua配置(init.lua)添加代码:
vim.api.nvim_set_hl(0, "@punctuation.bracket", { fg = "#586e75" }) vim.api.nvim_set_hl(0, "@punctuation.delimiter", { fg = "#586e75" })
- Vimscript配置(init.vim)添加代码:
hi @punctuation.bracket guifg=#586e75 ctermfg=10 hi @punctuation.delimiter guifg=#586e75 ctermfg=10
保存配置重启NeoVim即可生效。
方案2:开启NeoSolarized主题的TreeSitter适配
检查你的NeoSolarized主题初始化配置,确认treesitter适配开关已开启:
require('NeoSolarized').setup({ -- 其他原有配置保留 treesitter = true })
开启后主题会自动匹配TreeSitter的高亮组,无需额外自定义标点颜色。
补充:自定义颜色校验
如果修改后仍未生效,可将光标移动到标红的括号/分号上,运行命令 :TSHighlightCapturesUnderCursor 查看当前符号对应的高亮组名称,将上述代码中的高亮组替换为查询到的结果即可。
内容的提问来源于stack exchange,提问作者Ali Awan
相关产品推荐
相关产品推荐

