新版nvim-treesitter配置中的坑

0x00 事情起因

最近一直在折腾Nvim,试图弄一套自己舒服的配置出来,毕竟这玩意最大的特点就是高度自定义化,抄别人现成的终归没有自己一点点配出来的合胃口

这个插件是AI推给我的。起初我把我的配置扔给AI,想让AI优化一下

AI一通折腾,给我配置文件优化没了一半,便死了这条心。但在文末,AI如是说:

建议添加的小插件(提升体验)
nvim-treesitter: 你的配置里缺少语法高亮的核心。没有它,代码颜色很简陋。
comment.nvim: 快速注释代码(gcc)。
autopairs: 自动补全括号。

此时我突然意识到,我居然一直没有加语法高亮相关的插件!

0x01 首次栽坑

于是顺理成章,让AI给出这个插件的相关配置代码

1
2
3
4
5
6
7
8
9
10
11
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup({
ensure_installed = { "python", "lua", "vim", "vimdoc", "rust", "cpp", "c", "javascript", "markdown", "markdown_inline" },
highlight = { enable = true },
indent = { enable = true },
})
end,
}

乍一看没问题,很合理,便直接”引用”到我自己的配置文件中了。

在启动Nvim后,等待LazyNvim安装好插件,几行error扑面而来:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Failed to run `config` for nvim-treesitter

C:\Users\***\AppData\Local\nvim\init.lua:98: module 'nvim-treesitter.configs' not found:
no field package.preload['nvim-treesitter.configs']
cache_loader: module 'nvim-treesitter.configs' not found
cache_loader_lib: module 'nvim-treesitter.configs' not found
no file '.\nvim-treesitter\configs.lua'
no file 'D:\ProgramFiles\NeoVim\bin\lua\nvim-treesitter\configs.lua'
no file 'D:\ProgramFiles\NeoVim\bin\lua\nvim-treesitter\configs\init.lua'
no file '.\nvim-treesitter\configs.dll'
no file 'D:\ProgramFiles\NeoVim\bin\nvim-treesitter\configs.dll'
no file 'D:\ProgramFiles\NeoVim\bin\loadall.dll'
no file '.\nvim-treesitter.dll'
no file 'D:\ProgramFiles\NeoVim\bin\nvim-treesitter.dll'
no file 'D:\ProgramFiles\NeoVim\bin\loadall.dll'

# stacktrace:
- ~\AppData\Local\nvim\init.lua:98 _in_ **config**
- ~\AppData\Local\nvim\init.lua:395
Press ENTER or type command to continue

什么叫module not found?AI胡编乱造的?不如删掉好了!

于是注释掉了config func,再次启动,这次没报错,噫,修好了~

但,报错是没有了,但语法高亮也没见着啊…?

查阅一番资料后,了解到此插件本身只是一个语法解析器,提供语法解析功能,不同的语言需要不同的解析模板

那就安装模板呗?

1
:TSInstall python

结果在进行到Compiling parser时卡住了

这又是什么情况?

教程说需要有C编译器,我环境中有gcc啊,怎么会卡编译?

又是一番查资料,找到了一个命令

1
:checkhealth nvim-treesitter

check了一番:

1
2
3
4
5
6
Requirements ~
- ✅ OK Neovim was compiled with tree-sitter runtime ABI version 15 (required >=13).
- ❌ ERROR tree-sitter-cli
- ✅ OK tar 3.8.4 (C:\WINDOWS\system32\tar.EXE)
- ✅ OK curl 8.16.0 (C:\WINDOWS\system32\curl.EXE)
...

tree-sitter-cli?原来是缺这个!

0x03 再次栽坑

补上了缺的依赖项,但插件仍旧没有按照预期工作,配置项不全

又是一番查询,最终在项目仓库的一个discussion中找到了问题所在

module ‘nvim-treesitter.configs’ not found issue

按照讨论中的方案,再次修改了自己的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"nvim-treesitter/nvim-treesitter",
lazy = false,
build = ":TSUpdate",
config = function()
local treesitter = require("nvim-treesitter")
treesitter.setup()
treesitter.install { 'c', 'cpp', 'python' }

vim.api.nvim_create_autocmd('FileType', {
pattern = { 'c', 'cpp', 'python' },
callback = function()
vim.treesitter.start()
end,
})
end
}

启动Nvim,自动下载模板,编译,安装成功

打开一个文件,语法高亮也成功显示

问题解决

0x04 回顾

之所以出现这种问题,是因为在某个版本以后nvim-treesitter进行了一次完全不兼容的重写

在项目仓库的README中其实已经写明了:

[!CAUTION]
This is a full, incompatible, rewrite. If you can’t or don’t want to update, specify the master branch (which is locked but will remain available for backward compatibility).

而关于高亮功能的部分,下面给出了新版方案:

Highlighting

Treesitter highlighting is provided by Neovim, see :h treesitter-highlight. To enable it for a filetype, put vim.treesitter.start() in a ftplugin/<filetype>.lua in your config directory, or place the following in your init.lua:

vim.api.nvim_create_autocmd('FileType', {
  pattern = { '<filetype>' },
  callback = function() vim.treesitter.start() end,
})

早点去看一下仓库的README,这些都是可以避免的,还是被过时的信息坑了啊…


新版nvim-treesitter配置中的坑
https://www.letr.top/2026/01/30/about-nvim-treesitter/
作者
letr
发布于
2026年1月30日
许可协议