版本信息最后核对:2026-10-25
新配置、日常写代码,默认选 Neovim:内置 LSP、Lua 配置和 Treesitter 生态能省掉一层插件拼装。只有在目标机器只有系统自带 Vim、需要 gvim、或已有稳定 vimrc 且不打算引入 Lua 和外部依赖时,才继续用 Vim。
不要把 Neovim 当成“换了皮肤的 Vim”。它从 Vim 分叉而来,配置路径、插件 API、默认选项和部分编辑行为都不同;能共用的是 Vimscript 语法和大量操作习惯,不是整份配置。
| 维度 | Vim 9.x | Neovim 0.10/0.11+ |
|---|---|---|
| 配置语言 | Vimscript;9.0 起另有 Vim9 script | Vimscript + Lua,Lua 是一等配置语言 |
| LSP | 无内置客户端,用 coc.nvim、vim-lsp、ALE | 0.5 起内置 vim.lsp;0.11 起有 vim.lsp.config/enable |
| Tree-sitter | 无内置,语法高亮以正则为主 | 内置 vim.treesitter API,解析器由插件安装 |
| 终端 | 8.1 起 :terminal,需 +terminal |
内置终端与 job control,Lua 可直接管理进程 |
| 异步 | 8.0 起 job/channel/timer,回调式 Vimscript | 基于 libuv 的事件循环,Lua 协程与 RPC |
| 插件生态 | 传统 Vimscript 插件多,Vim9 插件较少 | Lua 插件活跃,LSP/Treesitter/模糊查找类多优先支持 |
| 兼容性 | 有 vi 兼容模式,历史插件和脚本包袱多 | 不是 Vim 的完全替代,部分特性和插件行为不同 |
| GUI | gvim/MacVim 自带图形界面 | 无内置 GUI,用 Neovide、nvim-qt 或编辑器前端 |
| 远程与嵌入 | +clientserver、--remote,平台受限 |
RPC API、--headless、--server,便于嵌入 |
| 默认与诊断 | 默认偏传统,靠 :version、:scriptnames |
默认更现代,stdpath 与 :checkhealth 统一检查 |
Neovim 通常启动更快、默认更接近现代编辑器,但差距主要取决于插件数量和配置方式;一个装了几十个插件的 Neovim 不会比干净的 Vim 快。Vim 的优势是“到处都有”,很多服务器、容器和救援环境只带 Vim 或 vi,不能假设能联网安装 Neovim。
has('nvim') 区分差异;Neovim 用 ~/.config/nvim,Vim 用 ~/.vim,不要互相软链整份配置。vim --version 或 nvim --version。如果只改服务器配置,Vim 足够;如果每天在本地写代码、想要开箱的 LSP 和 Treesitter,Neovim 更省事。
~/.vimrc。用 :echo stdpath('config') 找到配置目录,把内容放到 init.vim 或 init.lua;Vim 也不会读 Neovim 的配置。vim.g.mapleader = " ",再加载 lazy.nvim 等插件管理器;顺序错了 <leader> 映射会绑到反斜杠。:gui、Vim9 script 或特定编译特性的插件不行;用 has('nvim') 加保护,并查插件的 Neovim 支持说明。clipboard=unnamedplus 依赖 provider,先 :checkhealth provider;缺 Python/Node 或平台剪贴板工具时,复制会静默失败或报错。hidden、mouse、termguicolors、sessionoptions、shortmess 等默认值或行为有差异;迁移后逐项验证自动命令、映射和终端键位。coc-settings.json 和内置 vim.lsp 是两套体系,键位、诊断和代码操作都要重配;不要只复制 JSON 就期待生效。:help vim-differences,不要靠试错猜测某个 Vim 特性是否存在。~/.vimrc,直接启动 Neovim 会加载它吗?迁移时应该怎么做?~/.vimrc;把配置放到 stdpath('config') 下的 init.vim 或 init.lua,再逐项验证选项、插件和特性差异。coc-settings.json 并使用自己的命令和键位;内置 LSP 用 vim.lsp 配置和 API,两者不共享配置文件。vim --version 看是否有 +job、+channel、+terminal;7.4 通常没有这些特性,需要升级 Vim/Neovim,或用 tmux 和外部工具替代。
小程序版
微信扫码,随时查命令