Vim 工作流:模式、动作 + 文本对象的「语言」思维
工具与效率340 阅读约 4 分钟
很多人学 Vim 是背快捷键,背着背着就放弃了。其实 Vim 的精髓不是记忆,而是理解它把编辑设计成了一门**「动作 + 文本对象」的可组合语言**。掌握这个心智,命令是「拼」出来的,不是「背」出来的。
先搞懂模式
Vim 是模态编辑器,常用四个模式:
- Normal(普通):默认模式,按键是命令(移动、删除、复制)。
Esc回到这里。 - Insert(插入):真正打字。
i / a / o进入。 - Visual(可视):选中文本。
v(字符)/V(行)/Ctrl-v(块)。 - Command(命令行):
:开头,执行:w:q等。
新手最该改的习惯:打完字立刻 Esc 回 Normal,把 Normal 当「家」,而不是赖在 Insert 里。
核心:操作符 + 动作/文本对象
Vim 命令的结构是 操作符 + 范围,像句子一样组合:
| 操作符 | 含义 |
|---|---|
d |
delete 删除 |
c |
change 删除并进入插入 |
y |
yank 复制 |
v |
选中 |
范围可以是动作(移动到哪)或文本对象:
dw 删到下一个词 (d + w)
d$ 删到行尾 (d + $)
ciw 改整个词 (c + iw=inner word)
ci" 改引号内的内容 (c + i")
dap 删一个段落 (d + ap=a paragraph)
yi( 复制括号内内容 (y + i()
看出来了吗?你不需要记「删词、删行、删段」几十个命令,只要记住 d/c/y 三个操作符 × 几个文本对象(iw/i"/i(/ap…),就能自由组合出几百种操作。这才是 Vim 高效的来源。
高频动作
h j k l 左下上右
w / b 下/上一个词
0 / ^ / $ 行首 / 首个非空 / 行尾
gg / G 文件头 / 文件尾
{ / } 上/下一段
% 匹配的括号跳转
f<char> 行内跳到某字符
/pattern 搜索;n/N 下一个/上一个
高效编辑
. 重复上一次修改(Vim 最强命令之一)
u / Ctrl-r 撤销 / 重做
x / dd 删字符 / 删整行
yy / p 复制行 / 粘贴
>> / << 缩进 / 反缩进
ciw 改当前词(光标在词中任意位置都行)
那个 .(点)值得专门练——它重复上一次修改,配合精准的动作能极大减少重复劳动。
给新手的路线
- 先逼自己用
hjkl不用方向键,用Esc不赖 Insert; - 把
d/c/y+iw/i"/i(/ap练成肌肉记忆; - 学会
.、/搜索、ciw; - 再逐步加
f/t跳转、宏q、多窗口。
别一上来装一堆插件——先把「动作语言」用熟,那才是 Vim 区别于其他编辑器的根本。
小结
Vim 高效的本质是「操作符 + 文本对象」的组合语言:记住 d/c/y 三个操作符和几个文本对象,命令就能像造句一样拼出来。把 Normal 当家、勤用 . 重复、用 hjkl 戒掉方向键——心智对了,快捷键自然就长出来了。
相关文章
评论 (8)
N
Nova
brew 我也踩过权限的坑,千万别 sudo
阿
阿宽
已三连,期待更新
R
Ryan
homebrew 装东西老超时,有啥加速建议吗?
T
tobeornot
ci" di( 这套组合拳学完效率翻倍
Z
zoe
哈哈我也是这么理解的
二
二两
mac 上 vim 怎么共享系统剪贴板最省事?
G
小项目我个人更倾向轻量方案,按需演进就好
麦
麦兜
zsh 启动慢困扰我半年,照着排查果然是某个插件





