Neovim
编辑器配置、插件与快捷键。
专题与文章目录
1 个专题文章
Neovim 提供文本编辑、窗口、终端和语言客户端等基础能力。LazyVim 将常用插件、默认键位和配置约定组织成一套发行版。使用发行版可以减少初始装配工作,但仍需理解文件类型、项目根目录、外部语言工具和插件版本。
本系列适合能够使用终端、希望用 Neovim 完成实际开发任务的读者。没有 Vim 操作经验时,先完成内置 :Tutor,掌握进入插入模式、返回普通模式、保存和退出,再继续下面的项目路径。
阅读顺序与目标
| 顺序 | 内容 | 完成后的能力 |
|---|---|---|
| 1 | 本篇:环境与目录 | 知道当前加载哪套配置,能够运行健康检查 |
| 2 | 编辑与项目导航 | 使用文本对象、寄存器、窗口与 quickfix |
| 3 | 语言服务与格式化 | 区分 LSP、补全、parser 和 formatter,定位未附着问题 |
| 4 | 一个 Rust 修改任务 | 从失败测试定位边界错误,修改并审阅结果 |
| 5 | 插件与键位配置 | 用小范围覆盖扩展发行版,解释键位来源 |
| 6 | 远程、输入与窗口协作 | 处理中文输入、OSC52 和 Zellij 边界导航 |
| 7 | 升级与排障 | 固定版本、隔离问题、恢复已知可用配置 |
已有环境时可以按问题跳读。首次学习建议先把项目任务完成,再加入额外插件。
先确认基础条件
在终端查询:
对照 LazyVim 当前安装要求检查 Neovim 版本和外部依赖。字体影响图标显示,编译器可能被 parser 或原生插件构建使用;语言 SDK 则由具体项目决定。
本文配置约定参考 LazyVim 16。站点维护环境使用 Neovim 0.13 开发构建,这不是读者必须采用的版本。开发构建与稳定版有 API 差异,出现问题时先记录版本,不要仅凭“最新”判断兼容性。
用隔离目录试用
Linux/macOS 可以通过 NVIM_APPNAME 为学习配置使用独立目录。以下要求 ~/.config/nvim-lab 尚不存在:
然后启动:
NVIM_APPNAME=nvim-lab
首次启动会获取插件,依赖网络和本机工具链。以后进入这套学习配置,都使用相同的 NVIM_APPNAME;直接运行 nvim 仍使用通常的配置名。不要删除或替换现有 ~/.config/nvim 来验证一个配置思路。安装说明
Windows 的默认配置路径不同。无论平台如何,都可以在 Neovim 中直接查询:
:lua print(vim.fn.stdpath("config"))
:lua print(vim.fn.stdpath("data"))
第一项是配置,第二项通常包含插件数据。知道实际路径,比假定所有平台都使用 ~/.config/nvim 更可靠。
配置文件分别负责什么
nvim-lab/
├── init.lua
├── lazyvim.json
├── lazy-lock.json
└── lua/
├── config/
│ ├── lazy.lua
│ ├── options.lua
│ ├── keymaps.lua
│ └── autocmds.lua
└── plugins/
└── editing.lua
init.lua 进入配置,lazy.lua 初始化插件管理,options.lua 设置编辑器选项,keymaps.lua 定义键位,autocmds.lua 响应编辑器事件。lua/plugins/ 返回插件规格;lazyvim.json 记录 extras,lazy-lock.json 固定插件提交。
选择某个语言 extra 时,通过 :LazyExtras 查看并启用,再按提示完成插件安装和重启。语言 extra 可能带有可选配置,不保证所有调试器、SDK 和格式化器都已安装。
第一次启动后的检查
先执行 :LazyHealth,再查看与当前任务相关的 :checkhealth 项。不要因为无关可选提供者缺失就停在安装阶段;也不要忽略当前语言必需的可执行文件错误。
基础编辑选项放入 lua/config/options.lua:
vim.opt.number = true
vim.opt.relativenumber = true
vim.g.autoformat = false
关闭自动格式化适合学习时观察编辑边界,之后可以按项目约定恢复。手动格式化与项目工具的关系见语言服务篇。
准备完成的标准是:能打开和保存文件、确认配置路径、定位健康检查中的实际缺失项。接下来进入编辑与项目导航,再用一个小项目验证整套工作流。