普通的高亮其实不太好,可以使用 neovim 的插件优化高亮:nvim-treesitter

它通过构建抽象语法树 (AST) 来实现。

安装与配置

-- 高亮
{ 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate',
config = function()
    require('nvim-treesitter.configs').setup({
        ensure_installed = { "c", "cpp", "lua", "vim", "vimdoc" },
        highlight = { enable = true },
        indent = { enable = true },
    })
end,},

build = ':TSUpdate' 用来及时更新配置。及时更新 ensure_installed 的设置。

ensure_installed 列表中放入的就是需要安装的编程语言设置。

highlight = { enable = true } 就是告诉 Neovim 请关闭旧的、基于正则表达式的高亮引擎,改用 Treesitter 这个更先进、更准确的高亮引擎。

indent = { enable = true } 就是告诉 Neovim 请不要再用旧的脚本来猜测缩进了,直接使用 Treesitter 对代码结构的精确分析来计算正确的缩进。

可以移除的设置

treesitter 对于高亮以及缩进相比起传统设置更智能、更准确,所以 vim.opt.smartindent = true 可以删除。