跳到主要内容

00 Vim 起步:先完成一次安全编辑

这一页的目标很小:在一个可随时丢弃的文本里完成“移动、修改、保存、退出”。先做到这一点,比背一张快捷键表更重要。

下面按原生 Vim / Neovim 的稳定语义讲解。VS Code、JetBrains、Obsidian 等环境通常支持这些基础动作,但可能有按键冲突或实现差异;遇到不一致时,以对应 Vim Mode 的说明为准。你可以先在日常编辑器中练习,不必立刻迁移终端或配置插件。

开始前:给练习留出安全空间

新建一个没有价值的临时文本,或打开一段可复制的示例文字。练习时只在这个文件中保存;不要直接拿未提交的代码、配置文件或笔记试手。

如果你在终端使用 Vim 或 Neovim,先记住两件事:

  • :w 保存当前文件;:q 退出。
  • :q! 会放弃尚未保存的修改后退出。只在确定这些修改不需要保留时使用。

在 VS Code、JetBrains 或 Obsidian 中,保存和关闭仍可以使用应用原有的命令;本页重点是编辑区里的 Vim 动作。

第一轮:只区分两种状态

Vim 最开始的不适应,通常不是按键本身,而是“同一按键在不同状态有不同含义”。现在只需要认识两个模式:

  • Normal 模式:按键代表动作;用于移动、删除、复制和撤销。
  • Insert 模式:按键会输入文字。

Esc 总能尝试回到 Normal 模式。把它当作每次操作前的起点。

  1. 在练习文本中按 Esc
  2. i,输入一行 Vim 练习
  3. Esc,再随意按 jk

完成标志:最后两次按键没有输入 jk,而是移动了光标。你已经完成了最重要的一次模式切换。

不必刻意减少按 Esc 的次数。刚开始时,多按一次比在错误模式下继续编辑更省心。

第二轮:先用四个方向完成移动

在 Normal 模式中练习 hjkl。它们分别向左、下、上、右移动一个字符或一行。

动作按键练习
向左 / 向右h / l把光标移动到一个单词的第一个与最后一个字符。
向下 / 向上j / k在三行文字之间往返。
到下一个单词w连按几次,观察光标总是落在下一个单词的开头。
到本行开头 / 结尾0 / $在一行较长的文字中来回移动。

本轮只要求能看着键盘完成移动,不追求速度。hl 在真实工作中未必是最高效的选择,但它们能帮助你建立“Normal 模式只发命令”的感觉。

第三轮:一次只学一个编辑动作

编辑动作也从 Normal 模式开始。每做完一项都按 Esc,确认自己回到了起点。

想做什么按键小练习
在光标前输入i把光标放在一个词前,加上一个前缀。
在光标后输入a把光标放在词尾,补上一个字符。
在下一行新建一行o输入一行后按 Esc,再用 j 回来看它。
删除一个字符x删除一个错别字。
撤销上一步u刚删除后立刻撤销,确认文字恢复。
重做被撤销的操作Ctrl-r撤销后重做,确认删除再次出现。

完成标志:你能故意制造一个小错误,再用 uCtrl-r 往返一次。这样就不必担心练习时按错键。

第四轮:把动作组合成一次真实修改

复制下面三行到练习文件。若你已经在编辑器的 Vim 模式中,可以直接使用它;在终端 Vim/Neovim 中也一样。

今天学习 Vim
我要慢慢建立肌肉记忆
先完成一个小目标

然后按以下顺序完成,不必一次成功:

  1. Esc,用 jk 在三行间移动。
  2. 0$ 到第二行的开头、结尾。
  3. 把光标放到第二行末尾,按 a,补上一个句号或其他标记,再按 Esc
  4. 到第三行,按 o 新建一行,输入自己的下一步目标,再按 Esc
  5. u 撤销新行;确认后按 Ctrl-r 恢复它。
  6. 确认内容无误后保存;在终端 Vim/Neovim 中输入 :w 并回车,再输入 :q 并回车退出。

如果某一步混乱了,按 Esc,从当前位置继续即可。Vim 的学习不是把一串按键完整背下来,而是能随时回到一个确定的状态。

接下来一周:少量、高频、替换旧动作

先不要增加太多命令。连续一周,每天用五分钟完成下面两件事:

  1. 打开一小段无风险文字,用 jkw0$ 移动,不用方向键。
  2. 至少完成一次 ia 输入、一次 x 删除、一次 u 撤销。

感觉这些动作开始自然后,继续阅读 Vim 的核心思想。你会把已经练过的 w$ 放进一套“Action + Target + Control”的编辑模型中。

卡住时怎么办

  • 按键变成了文字:你在 Insert 模式;按 Esc 后重试。
  • 不知道刚才改了什么:先按 u;它比猜测当前状态更可靠。
  • 退出时提示有修改:需要保留就用 :w 后再 :q;不需要保留才使用 :q!
  • 编辑器里没有反应或快捷键冲突:确认已启用 Vim 模式,并查看对应编辑器的接入说明。

下一步

评论