Vim 实战:在 VS Code、JetBrains、终端里玩转 Vim
Vim 的精髓不在于“抛弃鼠标”,而在于用键盘语法思考——将“删除”、“复制”、“粘贴”这些动词与“单词”、“段落”、“括号内”这些名词组合,形成一套高效的编辑语言。这套肌肉记忆,可以在几乎所有主流 IDE 中复用。
下面我们分三步走:核心心法 → 环境配置 → 实战进阶。
一、 Vim 核心心法:模式、组合与重复
如果你刚入门,忘掉所有复杂快捷键,先建立这套思维模型:
1. 三板斧:模式切换
- 普通模式 (Normal):Vim 的“休息”状态,用于导航和操作。按 Esc 总能回到这。
- 插入模式 (Insert):按 i 进入,就像普通编辑器一样打字。
- 可视模式 (Visual):按 v 进入,用于选中文本。按 V 选整行,Ctrl+v 列选。

2. 语法公式:动词 + 名词/介词
这是 Vim 最优雅的一点,不背快捷键,而是学“语法”:
- 动词:d (删除/剪切),y (复制/抽拉),c (修改/删除并进入插入模式),v (选中)。
- 名词/介词:
- w (单词),s (句子),p (段落)。
- i" (引号内),a( (括号整体),t (直到某个字符前)。
- 组合出奇迹:
- daw = 删除一个单词 (delete a word) —— 光标在哪都行,直接删整个词。
- ci" = 修改双引号内的内容 (change inside quotes) —— 自动清空引号内内容并进入插入模式。
- yt, = 复制从光标到逗号前 (yank till comma)
3. 重复与撤销
- .:重复上一次修改(神器!)。比如用 dw 删了一个词,按 . 会继续删下一个。
- u:撤销。
- Ctrl + r:重做。

二、 实战配置:三大环境玩转 Vim
在这三大环境里,Vim 插件都不是“模拟器”,而是真正的引擎嵌入,体验非常流畅。
在这三大环境里,Vim 插件都不是“模拟器”,而是真正的引擎嵌入,体验非常流畅。
首先是 VS Code (VSCodeVim),其配置文件为 settings.json,调用 IDE 动作需配置 vim.handleKeys,最强优势是轻量,在前端和脚本开发中速度很快。
其次是 JetBrains IDEs (IdeaVim),配置文件位于 ~/.ideavimrc,支持映射 IDE 的 Action ID 来调用 IDE 动作,最强优势在于深度集成了 IDE 的重构和调试功能。
最后是 原生终端 (Vim/Neovim),使用 ~/.vimrc 或 init.vim 作为配置文件,原生支持所有动作调用(无需额外配置),最强优势是极速响应、支持 SSH 远程开发以及拥有庞大的插件生态。

1. VS Code:现代前端的首选
安装插件 VSCodeVim。
- 解决键位冲突:VS Code 的快捷键(如 Ctrl + p)会覆盖 Vim。在 settings.json 中设置,让某些快捷键回归 VS Code 本身:
json
"vim.handleKeys": {
"<C-p>": false, // 让 Ctrl+p 还是打开命令面板
"<C-s>": false // 让 Ctrl+s 还是保存文件
}
- 多行注释技巧:配置 Vim 的 commentary 插件精神。
- 进入可视模式 V 选中多行。
- 按下 gc 即可注释/取消注释。这比用鼠标点按钮快得多。
2. JetBrains IDE (IDEA, PyCharm, WebStorm):重度重构者的利器
安装插件 IdeaVim。
- 打通任督二脉:让 Vim 命令调用 IDE 的重构功能。这是其他编辑器做不到的。
- 首先,在 IDE 中开启 Action ID 追踪:Find Action (Ctrl+Shift+A) 搜索 IdeaVim: Track Action Ids。
- 然后用鼠标点击菜单栏的 "Rename" (重命名),它会弹窗告诉你这个动作的 ID 是 RenameElement。
- 最后,在 ~/.ideavimrc 配置文件中映射:
text
" 让 <leader>r 触发 IDE 的重命名 (通常 leader 键是空格或 \)
map <leader>r <Action>(RenameElement)
" 让 <leader>f 触发 IDE 的代码格式化
map <leader>f <Action>(ReformatCode)
-
- 重启 IDE 后,你在普通模式下按 空格 + r,就会弹出 IDE 那个智能的重命名框。

3. 终端 (Vim/Neovim):终极掌控者的圣地
在服务器上或本地终端直接使用。
- 基础配置 (~/.vimrc):新建文件,写入:
vim
set number " 显示行号
set relativenumber " 相对行号,方便用 5j 直接下跳5行
set tabstop=4 " 缩进4空格
set expandtab " Tab 转空格
syntax on " 语法高亮
set mouse=a " 鼠标可用(在终端里有时真需要)
- 插件管理 (vim-plug):原生 Vim 功能很基础,插件是灵魂。安装插件管理器:
vim
" 在 ~/.vimrc 中加入
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree' " 文件树
Plug 'vim-airline/vim-airline' " 底部状态栏美化
Plug 'neoclide/coc.nvim', {'branch': 'release'} " 代码补全 (LSP)
call plug#end()
然后打开 Vim,输入 :PlugInstall,插件会自动装好。

三、 进阶技巧:从“会用”到“高效”
掌握基础后,这几个技巧能让你的效率再上一个台阶:
- . 的妙用:
- 想给 10 行代码结尾加分号?在行尾按 A; 加一个分号,然后按 j 下移一行,再按 .。重复 9 次 .。省去了移动光标的麻烦。
- 宏录制 (Macro):批量处理重复的复杂操作。
- 按 qa 开始录制(存入寄存器 a)。
- 执行一次你要的操作(比如 0 到行首,dw 删一个词,j 下移)。
- 按 q 结束录制。
- 按 100@a,Vim 就会自动把接下来的 100 行都执行这个操作。
- 文件内快速搜索:
- *:搜索光标下的单词,并高亮所有匹配项。
- n / N:跳到下一个/上一个匹配项。
- :%s/old/new/g:全局替换,不加 g 只换每行第一个,加 g 换整行所有。
- 多窗口与分屏:
- :sp:水平分屏;:vsp:垂直分屏。
- Ctrl + w + h/j/k/l:在不同屏幕之间穿梭移动焦点。

总结
不要试图一天背完所有键位。建议:
- 强制关闭鼠标:从今天起,写代码有意识不动鼠标。
- 增量学习:这周只练 d 和 y 配合 w/$,下周练 ci( 和 da"。
- 可视化反馈:在 VS Code 或 IDEA 里用 Vim,你能看到插入模式的光标变化(块状变细线),更有安全感。
当你发现自己在用 Ctrl+右箭头 移动光标时会下意识按 w,你的 Vim 实战之路就真正开始了。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)