配置 Neovim
配置 Neovim
本文记录从零开始配置 Neovim 的过程,主要内容包括:
- 基础选项配置
- 安装并配置插件管理器
lazy.nvim - 常用界面与目录树插件(主题
tokyonight、状态栏lualine、文件树nvim-tree) - 语法高亮与自动括号(
nvim-treesitter+nvim-autopairs)以及配置文件语法检查(mason+nvim-lspconfig)
基础选项配置
首先创建核心配置目录,并编辑基础配置文件 ~/.config/nvim/lua/core/options.lua:
1 | mkdir -p ~/.config/nvim/lua/core |
在其中配置行号、搜索、外观,以及将 Tab 键转换为空格而非制表符的缩进规则:
1 | local opt = vim.opt |
提示:如果打开已有的历史文件,里面已经存在制表符(
\t),可以在开启expandtab = true的情况下输入命令:retab,即可将文件中现有的所有制表符一键替换为空格。
接着编辑入口文件 ~/.config/nvim/init.lua,引入刚刚编写的基础配置:
1 | nvim ~/.config/nvim/init.lua |
1 | require("core.options") |
配置插件管理器 (lazy.nvim)
这里选择使用 lazy.nvim 作为插件管理器。首先安装依赖的 luarocks 包管理器、Treesitter 编译语法树所需的 tree-sitter-cli,以及 Mason 自动下载安装配置文件检查服务所需的环境(nodejs、npm、unzip 等):
1 | sudo pacman -S --needed luarocks tree-sitter-cli ripgrep fd nodejs npm unzip wget curl git |
创建插件目录并编辑 ~/.config/nvim/lua/core/lazy.lua:
1 | mkdir -p ~/.config/nvim/lua/plugins |
1 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" |
在 ~/.config/nvim/init.lua 中添加对 core.lazy 的引用:
1 | require("core.options") |
常用插件配置
我们先按功能模块创建对应的插件配置文件:
1 | touch ~/.config/nvim/lua/plugins/theme.lua |
主题配色
这里选择 tokyonight.nvim,在 ~/.config/nvim/lua/plugins/theme.lua 中添加:
1 | return { |
状态栏
这里选择 lualine.nvim,在 ~/.config/nvim/lua/plugins/statusbar.lua 中添加:
1 | return { |
文件目录树
这里选择 nvim-tree.lua,在 ~/.config/nvim/lua/plugins/tree.lua 中添加:
1 | return { |
语法高亮与检查配置
语法树高亮与自动括号配对
Neovim 默认不带括号与引号自动补全功能,因此我们在配置 nvim-treesitter(将代码解析为抽象语法树 AST 以提供精准语法高亮与缩进)的同时,一并引入 nvim-autopairs 来实现 ()、[]、{}、""、'' 的自动配对补全。
编辑 ~/.config/nvim/lua/plugins/syntax.lua:
1 | return { |
配置文件语法与格式检查
为了对 JSON、YAML、TOML、XML、Dockerfile、Hyprland 等纯配置文件提供实时的语法与格式错误检查,我们可以使用轻量的 mason.nvim + nvim-lspconfig 组合:
编辑 ~/.config/nvim/lua/plugins/lsp.lua:
1 | return { |
验证与常用命令
完成上述配置后,重新启动 nvim,lazy.nvim 会自动安装所有插件,随后 nvim-treesitter 和 mason 也会在后台自动下载对应的语法解析器和配置文件检查服务。
你可以在 Neovim 中使用以下命令检查运行状态:
:Lazy:打开lazy.nvim插件管理界面,查看插件加载与更新情况(可按X清理不再使用的插件):checkhealth lazy:检查lazy.nvim健康状态:Mason:打开 Mason 管理面板,查看已安装的配置文件:checkhealth vim.lsp(或:LspInfo):查看当前配置文件挂载的检查服务状态:checkhealth nvim-treesitter:查看 Treesitter 环境及各语言语法解析器的安装状态