957 字
5 分钟
Neovim配置-treesitter的安装

安装好 lspblink 后,我们的Neovim已经基本可以作为一个代码编辑器来使用了,但如果与VSCode比较就会发现,lsp 提供的代码高亮有点贫瘠,pylsp 只能提供函数的高亮,第三方库函数的参数基本没有高亮提醒。这里可以补充一个知识,代码高亮功能的前提是编辑器能够解析代码,并分析其每一部分分别隶属于什么结构,解析得到的内容可以通过 :Inspect 显示。在显示内容中,我们能发现不止Treesitter提供的内容,还有 lsp 提供的分析内容,只不过 lsp 分析的内容相对更简单。VSCode拥有自己的代码解析器,而在Neovim及其衍生产物中,最好的选择是Treesitter,它会将代码解析为抽象语法树(abstract syntax tree,AST)并提供给Neovim中的其他插件。在这篇教程中,我们会使用 nvim-treesitter 作为Neovim的Treesitter提供、catppuccin 作为提供高亮的Neovim主题以及 rainbow-delimiters ——一个使用了Treesitter提供分析的彩虹括号插件。

nvim-treesitter 的安装#

相比于 lsp ,安装 nvim-treesitter 非常简单,只需要以下代码即可。你也可以到相应的仓库中查看。

nvim-treesitter
/
nvim-treesitter
Waiting for api.github.com...
00K
0K
0K
Waiting...
return{
"nvim-treesitter/nvim-treesitter",
branch = "master",
build=':TSUpdate',
config=function ()
local configs = require('nvim-treesitter.configs')
configs.setup({
ensure_installed = {'json', 'lua', 'luadoc', 'markdown_inline', 'matlab', 'powershell', 'python', 'vim', 'vimdoc', 'xml', 'regex'},
sync_install = false,
auto_install = true,
highlight = {enable = true},
indent = {enable = true},
})
end
}
WARNING

branch = "master" 表示使用 master 分支,这是Treesitter的默认分支,也是稳定分支,但已经不再更新了。如果你需要使用正在更新的分支,请使用 "main" 分支。

ensure_installed 中填写你需要安装的语言 parser,目前支持的语言可以在 这里 找到,不是所有语言都支持Treesitter的全部功能。为了保证Neovim能够提供任意语言的代码高亮,我们启用了 auto_install,以便在打开的文件不存在于 ensure_installed 中时自动下载相应的 parser

使用支持 nvim-treesitter 的主题#

虽然 nvim-treesitter 提供了代码分析功能,但实际上的代码高亮是由主题来提供的,主题定义代码分析的不同结果应该呈现什么颜色。我比较推荐 catppuccin 这个主题,它不仅对Neovim及其插件有着充足的支持,还为社区中的大量其他工具提供了相应的主题,可以保证不同软件界面配色的一致性。

nvim-treesitter.lua
return {
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
config = function ()
require('catppuccin').setup({
custom_highlights = function (colors)
return {
Pmenu = { bg = colors.none },
PmenuExtra = { bg = colors.none },
NormalFloat = { bg = colors.none },
}
end,
integrations = {
blink_cmp = true,
mason = true,
snacks = {enable = true},
treesitter = true,
}
})
vim.cmd.colorscheme("catppuccin-macchiato")
end
}

catppuccin 对大量的其他的插件都有适配,你需要在 integrations 中进行相应的配置,有些插件的配置需要在对应的插件中进行,比如 bufferlinecatppuccin 中含有四种不同的配色方案,我们在安装好主题后需要选择一种使用,第21行代码并不是对主题的配置,而是启用主题的代码。

rainbow-delimiter 的安装#

rainbow-delimiter 的安装应该是我在文章中说明的最为简单的插件安装过程。

return {
"HiPhish/rainbow-delimiters.nvim"
}

虽然这个插件是可以自定义的,包括文件类型的黑/白名单、优先级、策略、高亮队列等。但自定义的意义不大,这就只是个提供彩虹括号的插件,正常用就已经很好用了。

结语#

有了 lsptreesitter 的帮助,我们的Neovim已经可以说和VSCode相差不大了,除了 dap ——也就是调试器。但如果只是使用Neovim作为脚本编辑器,现在该有的功能都有了。

Neovim配置-treesitter的安装
https://blog.lancersoul.top/posts/nvim-treesitter/
作者
Lancer Soul
发布于
2025-09-18
许可协议
CC BY-NC-SA 4.0