如何在LazyVim中永久禁用nvim-treesitter语法高亮器
如何在LazyVim中永久禁用nvim-treesitter高亮模块
问题描述
我尝试在LazyVim(Neovim)中禁用nvim-treesitter的高亮模块,已做如下配置但无效:
~/.config/nvim/lua/plugins/treesitter.lua文件内容:
-- disable treesitter highlight return { { "nvim-treesitter/nvim-treesitter", opts = { highlight = { enable = false }, indent = { enable = true }, }, }, }
- 同时在
~/.config/nvim/lua/config/lazy.lua中添加了以下代码:
require'nvim-treesitter.configs'.setup { highlight = { enable = false, additional_vim_regex_highlighting = false, }, }
运行:checkhealth未发现tree-sitter相关错误或警告,但仅能通过<space>uT临时禁用tree-sitter高亮器,请问如何永久禁用该功能?
解决方案
1. 移除冲突配置
删除config/lazy.lua中直接调用require'nvim-treesitter.configs'.setup的代码。LazyVim通过plugins/目录下的配置文件管理插件初始化逻辑,直接调用setup会与Lazy的配置机制冲突,导致你的设置被后续插件初始化操作覆盖。
2. 优化插件配置文件
保留plugins/treesitter.lua的配置,并调整为以下形式确保优先级:
return { { "nvim-treesitter/nvim-treesitter", priority = 1000, -- 确保该配置优先于其他依赖treesitter的插件加载 opts = { highlight = { enable = false }, indent = { enable = true }, additional_vim_regex_highlighting = false, -- 可选:禁用Vim原生正则高亮,避免冗余 }, }, }
如果仍有其他插件修改treesitter配置,可使用函数式opts确保覆盖生效:
return { { "nvim-treesitter/nvim-treesitter", priority = 1000, opts = function(_, opts) -- 强制覆盖所有已有的高亮配置 opts.highlight = { enable = false } opts.additional_vim_regex_highlighting = false return opts end, }, }
3. 检查第三方插件干扰
部分LazyVim社区插件或自定义插件可能会重新启用treesitter高亮。通过:Lazy命令查看已安装插件,排查是否有插件依赖并修改了treesitter的高亮设置。若存在此类插件,可在对应插件的配置中同步禁用高亮,或在上述treesitter.lua的函数式opts中强制覆盖。
4. 验证与缓存清理
保存配置后重启Neovim,运行:TSConfigInfo查看当前treesitter配置,确认highlight.enable是否为false。若配置仍未生效,可删除~/.cache/nvim/treesitter目录清理缓存后再次重启。
内容的提问来源于stack exchange,提问作者Neeraj Jain
相关产品推荐
相关产品推荐

