2026年了,为什么我还在用Vim?5个让你无法割舍的理由
2026年了,为什么我还在用Vim?5个让你无法割舍的理由
上周同事看到我的终端界面,说了一句让我哭笑不得的话:“你居然还在用Vim?这不是上古时代的编辑器吗?”
说实话,这种话我听了不下二十遍。每次有人看到我在终端里啪啪啪地敲代码,都会投来一种"你是不是穿越来的"的眼神。但我的回答永远是同一句:你用过了再说。
2026年了,VSCode有了AI补全,Cursor能自动写代码,JetBrains全家桶越来越智能。可我为什么还是每天打开Vim?不是因为怀旧,是因为它真的回不去了。
今天聊聊这5个让我无法割舍Vim的理由。
理由1:手指不离开主键盘行,效率直接翻倍
这是Vim最核心的设计哲学,也是最被低估的一点。
用VSCode写代码,你得频繁摸鼠标。选中、复制、跳转到某一行——每一步都是手离开键盘、摸鼠标、再回来。别小看这几秒,一天积累下来就是几十分钟。
Vim的方案是这样的:
hjkl移动光标,手指始终在主键盘行dd删除一行,yy复制一行,p粘贴——三个键搞定一段操作ciw改写一个词,daw删除一个词——操作符+文本对象,组合式编辑
说出来你可能不信,但当你习惯了这套操作之后,用鼠标反而觉得慢。
我算过一笔账:假设每分钟省下10秒鼠标操作,一天编码6小时,那就是每天省下1小时。一个月就是30小时的纯编码时间。
这30小时够你学一门新语言了。
理由2:SSH到服务器,Vim是你唯一的朋友
后端开发的日常:线上出了bug,SSH到服务器看日志、改配置、重启服务。
到了服务器上,没有VSCode,没有Cursor,没有IDE。你只有终端。这时候你用啥?
nano?连语法高亮都没有,改个配置文件都得瞪大眼睛cat+sed?调试的时候你会哭的- Vim?语法高亮、多文件切换、搜索替换、分屏……一个不缺
坦白讲,哪怕你平时用VSCode用得飞起,遇到服务器紧急操作的时候,Vim技能就是你的保命符。
我见过太多人SSH上去之后对着黑屏发呆,最后只能scp把文件拉下来改完再推上去。真的,学会Vim基础操作,i插入、Esc回正常模式、:wq保存退出,就这三招已经够你应对80%的服务器编辑场景了。
理由3:Neovim让Vim焕发第二春
如果你以为Vim还停留在2010年的水平,那你真的该更新认知了。
Neovim是Vim的一个现代化分支,这几年发展得风生水起:
LSP支持——Vim也能像IDE一样智能补全
-- 使用 nvim-lspconfig 配置语言服务器locallspconfig=require('lspconfig')-- Python 补全lspconfig.pyright.setup{}-- Go 补全lspconfig.gopls.setup{}-- TypeScript 补全lspconfig.tsserver.setup{}配上nvim-cmp自动补全插件,体验真的跟VSCode没太大区别。
LazyVim / NvChad:开箱即用的Neovim发行版
很多人被Vim劝退的原因是配置太复杂。现在好了:
- LazyVim:一个命令安装,IDE级体验开箱即用
- NvChad:速度极快,UI漂亮,预设了常用插件
- AstroNvim:功能最全,适合从IDE迁移过来的用户
说真的,现在配置Neovim已经不需要从零开始了。选一个发行版,十分钟就能上手。
Lua配置:告别丑陋的VimScript
Neovim用Lua替代了VimScript写配置。Lua是一门正经的编程语言,有类型提示、有模块系统、有包管理。配置文件再也不用写成一坨意大利面了。
理由4:启动速度——你永远不需要等IDE加载
这是我最直观的感受。
我在公司用的VSCode,装了一堆插件之后,冷启动要8-12秒。打开一个大点的前端项目,有时候要等20秒才能开始写代码。
我的Neovim呢?
$timenvim# 0.03秒0.03秒。零点零三秒。
不是我吹,这个速度你不亲自体验一下是无法理解的。你脑子里刚想好要改什么,手指已经动了,编辑器已经打开了。没有任何等待、没有任何loading画面、没有任何"正在初始化"的提示。
当你需要同时开十几个文件、在不同的项目间快速切换的时候,Vim的响应速度就是生产力本身。
理由5:可定制性——你的编辑器,你做主
VSCode的设置面板给你什么,你就用什么。想改主题颜色?挑预设的几个。想改快捷键?在JSON里翻半天。想让编辑器替你干点奇怪的事?不好意思,插件生态不支持。
Vim不一样。在Vim的世界里,编辑器就是你的画布。
随便举几个我日常用的例子:
自定义快捷键——实现"心想事成"
-- 一键运行当前文件vim.keymap.set('n','<F5>',':!python %<CR>')-- 快速跳转到定义(配合LSP)vim.keymap.set('n','gd',vim.lsp.buf.definition)-- 一键格式化vim.keymap.set('n','<leader>f',function()vim.lsp.buf.format({async=true})end)自动命令——让编辑器变聪明
-- 保存时自动去除行尾空格vim.api.nvim_create_autocmd("BufWritePre",{pattern="*",command="%s/\\s\\+$//e",})-- 打开Python文件时自动设置4空格缩进vim.api.nvim_create_autocmd("FileType",{pattern="python",command="setlocal shiftwidth=4 tabstop=4 expandtab",})这些在VSCode里要么做不到,要么需要写到settings.json里,格式还特别丑。
在Vim里,你的编辑器跟你一起进化。你学到一个新需求,改一行配置,下次就生效了。日积月累,你的Vim越来越顺手,效率越来越高。这个正反馈循环一旦建立,就真的回不去了。
说点踩坑的实话
说了这么多好处,也聊聊Vim的缺点,免得你以为我是无脑吹:
坑1:学习曲线是真的陡
Vim的操作逻辑跟所有主流编辑器都不一样。模式切换、按键组合、文本对象……这些概念没有一周的持续使用,根本形不成肌肉记忆。
我的建议是:先用两周,只学基础操作。i插入、Esc回正常、hjkl移动、:wq保存退出,这些够你活下来了。其他的慢慢加。
坑2:插件管理是个无底洞
Vim的插件生态太丰富了,很容易陷入"这个插件不错,那个也想试"的循环。结果配置文件越来越臃肿,启动速度反而变慢了。
经验法则:装插件之前问自己——我真的需要它吗?还是我只是觉得它酷?保持配置精简,够用就好。
坑3:前端开发体验确实不如VSCode
Vue、React这种前端项目,VSCode的Emmet、Tailwind插件、Live Preview这些确实好用。让Vim去模拟这些体验不是不行,但配置成本高很多。
我的做法是:后端和脚本用Vim,前端用VSCode。工具就是拿来用的,没必要宗教式地只选一个。
写在最后
说到底,编辑器只是工具。VSCode很棒,Cursor很酷,JetBrains很强大。我没有任何宗教式的执念——我只是觉得Vim更适合我的工作方式。
但它确实不是人人都适合。如果你每天的工作就是写写CRUD、复制粘贴为主,那VSCode已经够好了,没必要强迫自己学Vim。
可如果你满足以下任何一条:
- 经常SSH到服务器操作
- 厌倦了IDE的加载速度
- 想要完全掌控自己的编辑器
- 相信键盘比鼠标快
那Vim值得你花两周时间试试。
最后问一句:你用Vim吗?如果不用,是因为什么?评论区聊聊,我很好奇大家的选择。
Vim官方文档:https://www.vim.org/
Neovim官网:https://neovim.io/
LazyVim:https://www.lazyvim.org/
