Neovim
从 Vim 分出的开源终端文本编辑器,用 Lua 写配置和插件,内置 LSP 客户端与 Tree-sitter 语法高亮,并提供 RPC 接口供其他程序嵌入,适合愿意花几天适应模态操作、在终端里长期写代码的开发者。
Neovim 是一个从 Vim 分出来的文本编辑器,目标是在保留 Vim 编辑习惯的前提下,把编辑器的内核做得更容易被扩展和嵌入。它面向的是已经在用 Vim、或者愿意花时间学 Vim 操作方式的开发者。装好之后打开终端输入 nvim 就能用,界面就是终端里的文本界面,没有多余的按钮和面板。
主要功能
配置和插件用 Lua 写,放在 init.lua 里,比 Vimscript 更容易组织。内置 LSP 客户端,可以做语义级的代码检查和重构;Tree-sitter 负责语法高亮和文本对象,解析比正则更准。多光标功能可以把一条命令或映射一次性重放到多个位置上。它还提供 RPC 接口,别的程序能把 Neovim 当作编辑器或脚本宿主嵌进去,所以有 Neovide、VimR、vscode-neovim 这类图形界面和编辑器集成。
和 Vim 的关系
它兼容 Vim 的编辑模型和 Vimscript v1,Vim 8.x 的插件大多能直接用。已经在用 Vim 的人可以照着 :help nvim-from-vim 迁移;没用过 Vim 的,可以先跑 :Tutor 熟悉基本操作。官方也明确说不会弃用 Vimscript,Lua 只是多出来的一条路。
费用与限制
项目开源,代码和讨论都在 GitHub 上,网站靠赞助维持。它本身是终端里的编辑器,想要鼠标点菜单、开箱即用的图形界面,需要另外装 GUI 前端。上手成本主要来自 Vim 的模态操作和配置,不熟悉的人前几天会比较别扭。当前稳定版是 0.12,路线图和更新记录都放在官网上。