You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:53:13