Appearance
常见错误与效率陷阱
避开这些常见陷阱,让你的 Vim 学习之路更顺畅。
移动陷阱
陷阱 1:过度使用 hjkl
问题:用 jjjjjjjj 移动 8 行
正确做法:
8j直接跳 8 行- 使用相对行号 +
j/k }跳转到下一段落/pattern搜索跳转
陷阱 2:不使用 f/t
问题:用 llllll 移动到特定字符
正确做法:
f( → 跳转到下一个 (
t) → 跳转到 ) 之前
F" → 向后跳转到 "陷阱 3:忘记 w/b/e
问题:逐字符移动
正确做法:
w → 下一个词首
b → 上一个词首
e → 当前词尾
W B E → 按空格分隔的词编辑陷阱
陷阱 4:不使用文本对象
问题:
v + 移动 + 选中 + d → 删除选中正确做法:
diw → 删除整个词
di" → 删除引号内
da( → 删除括号及内容陷阱 5:不使用 . 命令
问题:重复相同操作多次输入
正确做法:
ciw新内容<Esc> → 第一次修改
. → 重复修改陷阱 6:手动选中整行
问题:v + 移动到行尾
正确做法:
V → 直接选中整行
yy → 复制整行
dd → 删除整行陷阱 7:不使用 o/O
问题:A<Enter> 新建一行
正确做法:
o → 下方新建行并进入插入模式
O → 上方新建行并进入插入模式搜索陷阱
陷阱 8:重复搜索相同内容
问题:每次都输入 /pattern
正确做法:
* → 搜索当前词(向前)
# → 搜索当前词(向后)
n/N → 继续搜索陷阱 9:搜索后手动修改
问题:
/word → 搜索
n → 找到位置
ciw → 修改
n → 下一个
ciw → 又修改...正确做法:
/word → 搜索
cgn → 修改并选中下一个
. → 重复(或 n 跳过)配置陷阱
陷阱 10:复制大量未理解的配置
问题:从网上复制几百行配置
正确做法:
- 逐条添加,理解每条的作用
- 从最基本的配置开始
- 遇到问题能知道是哪条引起
陷阱 11:过多自定义映射
问题:为每个操作都创建映射
正确做法:
- 只为高频操作创建映射
- 保持映射简洁、有规律
- 优先学习 Vim 原生命令
陷阱 12:禁用太多 VSCode 功能
问题:为了"纯净" Vim 体验禁用一切
正确做法:
json
{
"vim.handleKeys": {
"<C-c>": false, // 保留 VSCode 复制
"<C-v>": false, // 保留 VSCode 粘贴
"<C-f>": false // 保留 VSCode 搜索
}
}模式陷阱
陷阱 13:不知道当前模式
问题:在错误模式下输入
正确做法:
- 配置状态栏显示模式
- 配置光标形状区分模式
- 养成按
Esc回到 Normal 模式的习惯
json
{
"vim.cursorStylePerMode.normal": "block",
"vim.cursorStylePerMode.insert": "line",
"vim.cursorStylePerMode.visual": "underline"
}陷阱 14:在 Insert 模式停留太久
问题:像普通编辑器一样一直在 Insert 模式
正确做法:
- 完成一段输入后立即
Esc - 使用
jk快速退出 Insert 模式 - 小修改完成后立即退出
陷阱 15:忘记 Visual 模式的能力
问题:只用 v 选中,不用 V 和 Ctrl+v
正确做法:
v → 字符选择
V → 行选择
Ctrl+v → 块选择效率陷阱
陷阱 16:不使用寄存器
问题:只用默认寄存器,覆盖了想保留的内容
正确做法:
"ayy → 复制到寄存器 a
"ap → 从寄存器 a 粘贴
"+y → 复制到系统剪贴板陷阱 17:不使用标记
问题:记不住要返回的位置
正确做法:
ma → 设置标记 a
'a → 跳转到标记 a
`` → 跳回上一位置陷阱 18:不使用宏
问题:手动重复相同操作 20 次
正确做法:
qa → 开始录制
...操作...
q → 停止录制
20@a → 重复 20 次学习陷阱
陷阱 19:想一次学会所有
问题:试图在一天内掌握所有 Vim 命令
正确做法:
- 每周学习 5-10 个新命令
- 在实际工作中练习
- 逐步内化成肌肉记忆
陷阱 20:遇到困难就放弃
问题:感觉 Vim 太难,效率不如鼠标
正确做法:
- 初期效率下降是正常的
- 坚持 2-4 周会看到明显提升
- 在非紧急任务时练习
陷阱 21:不复习已学内容
问题:学了新的忘了旧的
正确做法:
- 定期复习已学命令
- 使用 Vim 练习器
- 建立个人速查表
自检清单
每周检查自己是否犯了以下错误:
移动
- [ ] 是否用
jjjjj代替5j? - [ ] 是否用
llll代替f字符? - [ ] 是否忘记使用
w/b/e?
编辑
- [ ] 是否手动选中而不用文本对象?
- [ ] 是否重复操作而不用
.? - [ ] 是否用
v选中整行而不用V?
搜索
- [ ] 是否重复输入搜索词而不用
*? - [ ] 是否手动修改每个匹配而不用
cgn?
配置
- [ ] 是否添加了不理解的配置?
- [ ] 是否禁用了有用的 VSCode 功能?
习惯
- [ ] 是否在 Insert 模式停留太久?
- [ ] 是否经常不知道当前模式?
- [ ] 是否为重复操作录制宏?
效率提升检查
如果你的效率没有提升,检查:
是否在用 Vim 方式思考?
- 操作应该是:动词 + 名词(d + iw)
- 不是:选中 + 操作
是否使用了正确的粒度?
- 小操作:文本对象
- 中操作:搜索 + cgn
- 大操作:宏
是否形成了肌肉记忆?
- 常用操作应该不需要思考
- 如果还需要想按什么键,需要更多练习
总结
避开陷阱的核心原则:
- 使用语义化移动:词、段落、搜索
- 使用文本对象:
ciwdi"dat - 使用重复命令:
.命令和宏 - 理解你的配置:不盲目复制
- 循序渐进学习:每周几个新命令
- 保持在 Normal 模式:编辑完立即退出
下一步:学习效率提升测量与对比。