Skip to content

常见错误与效率陷阱

避开这些常见陷阱,让你的 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 选中,不用 VCtrl+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 模式停留太久?
  • [ ] 是否经常不知道当前模式?
  • [ ] 是否为重复操作录制宏?

效率提升检查

如果你的效率没有提升,检查:

  1. 是否在用 Vim 方式思考?

    • 操作应该是:动词 + 名词(d + iw)
    • 不是:选中 + 操作
  2. 是否使用了正确的粒度?

    • 小操作:文本对象
    • 中操作:搜索 + cgn
    • 大操作:宏
  3. 是否形成了肌肉记忆?

    • 常用操作应该不需要思考
    • 如果还需要想按什么键,需要更多练习

总结

避开陷阱的核心原则:

  1. 使用语义化移动:词、段落、搜索
  2. 使用文本对象ciw di" dat
  3. 使用重复命令. 命令和宏
  4. 理解你的配置:不盲目复制
  5. 循序渐进学习:每周几个新命令
  6. 保持在 Normal 模式:编辑完立即退出

下一步:学习效率提升测量与对比。

常见错误与效率陷阱 has loaded