Vim 用户用 VS Code:3 个月后的真实体验
我是一个用了 8 年 Vim 的开发者。3 个月前,因为团队协作需要,我开始用 VS Code。
这是我的真实体验,不吹不黑。
为什么换
不是因为 Vim 不好用,而是因为:
1. 代码评审时共享屏幕,别人看不懂我的操作
2. 新同事入职培训成本太高
3. 有些插件生态 VS Code 确实更好(比如 Copilot、Live Share)
第一天:想放弃
打开 VS Code 的第一感觉:慢。
不是启动慢,是操作慢。在 Vim 里我按 ci" 就能改引号里的内容,在 VS Code 里要鼠标选中再打字。这种操作密度上的差异让我非常不适。
第一周:安装 Vim 插件
妥协方案:安装 VS Code Vim 插件。
JSON
// settings.json
{
"vim.useSystemClipboard": true,
"vim.hlsearch": true,
"vim.leader": "<space>",
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["<leader>", "w"],
"commands": [":w"]
},
{
"before": ["<leader>", "q"],
"commands": [":q"]
}
]
}但 Vim 插件和原生 Vim 还是差很多。宏录制有时不工作,某些插件的快捷键会冲突。
第一个月:找到平衡点
我发现 VS Code 最大的优势不是编辑,而是浏览和理解代码:
- Go to Definition(F12)比 ctags 快且准
- Find All References 比 grep 好用
- 侧边栏的文件树比 NERDTree 直观
- Git 集成比 fugitive 直观
所以我形成了混合工作流:
CODE
- 代码导航:VS Code 原生功能
- 代码编辑:Vim 模式
- Git 操作:VS Code 图形界面
- 终端操作:切回 iTerm2 + tmux第三个月:回不去了
三个月后我发现,纯 Vim 环境有些地方确实不如 VS Code:
1. 调试体验
VS Code 的断点调试、变量监视、调用栈可视化,这些 Vim 插件做不到同等体验:
JSON
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/src/index.ts",
"sourceMaps": true,
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
}
]
}2. 扩展生态
有些 VS Code 独占扩展非常实用:
- **GitLens**:行级别的 Git blame
- **Error Lens**:行内显示错误
- **Thunder Client**:API 测试
- **Database Client**:数据库管理
3. 远程开发
Remote SSH 可以无缝在远程服务器上开发,Vim 虽然也能 SSH 进去用,但体验差很多。
我现在的工作流
CODE
VS Code + Vim 插件(编辑)
├── 内置终端(日常命令)
├── iTerm2 + tmux(长期运行的服务)
├── GitLens(版本控制)
└── Copilot(AI 辅助)
纯 Vim(特定场景)
├── SSH 到服务器快速改配置
├── 大文件编辑(VS Code 会卡)
└── 临时写点小脚本总结
如果你问我哪个更好,我的答案是:取决于场景。
- **团队协作 + 大型项目** → VS Code
- **个人项目 + 极简主义** → Vim
- **我现在的选择** → 两个都用
工具是为人服务的,不是反过来。
读者评论 3