Vim常用操作备忘

一份精简的 Vim 常用操作速查表,覆盖日常开发中 90% 的使用场景。

四种模式

模式 进入方式 用途
Normal Esc 浏览、移动、删除、复制
Insert i / a / o 输入文本
Visual v / V / Ctrl+v 选择文本
Command : 执行命令

所有操作的起点是 Normal 模式,任何时候按 Esc 回到 Normal。

移动

字符/行级别:

  • h j k l — 左下上右
  • 0 — 行首,$ — 行尾
  • ^ — 行首第一个非空字符
  • w — 下一个单词开头,b — 上一个单词开头
  • e — 当前单词末尾

屏幕/文件级别:

  • gg — 文件开头,G — 文件末尾
  • Ctrl+d — 向下半屏,Ctrl+u — 向上半屏
  • H — 屏幕顶部,M — 屏幕中间,L — 屏幕底部
  • :{n} — 跳到第 n 行

查找跳转:

  • f{char} — 跳到本行下一个 char
  • % — 跳到匹配的括号
  • * — 搜索当前光标下的单词

编辑

插入:

  • i — 光标前插入,a — 光标后插入
  • I — 行首插入,A — 行尾插入
  • o — 下方新开一行,O — 上方新开一行

删除:

  • x — 删除光标处字符
  • dd — 删除整行
  • dw — 删除到下一个单词
  • d$D — 删除到行尾
  • diw — 删除光标所在单词(不含空格)
  • daw — 删除光标所在单词(含空格)

复制粘贴:

  • yy — 复制整行
  • yw — 复制一个单词
  • p — 在光标后粘贴,P — 在光标前粘贴

撤销重做:

  • u — 撤销
  • Ctrl+r — 重做
  • . — 重复上一次操作

修改:

  • cw — 删除到单词末尾并进入插入模式
  • ci" — 修改双引号内的内容
  • ci( — 修改括号内的内容
  • cc — 修改整行

搜索替换

  • /pattern — 向下搜索
  • ?pattern — 向上搜索
  • n — 下一个结果,N — 上一个结果
  • :%s/old/new/g — 全局替换
  • :%s/old/new/gc — 全局替换(逐个确认)
  • :s/old/new/g — 只替换当前行

Visual 模式

  • v — 字符选择
  • V — 行选择
  • Ctrl+v — 块选择(列编辑)

选中后:

  • d — 删除选中
  • y — 复制选中
  • > — 缩进,< — 反缩进
  • U — 转大写,u — 转小写

块选择(Ctrl+v)的典型场景:给多行加注释。Ctrl+v 选中列 → I → 输入 // Esc

分屏

  • :sp — 水平分屏
  • :vsp — 垂直分屏
  • Ctrl+w h/j/k/l — 在分屏间切换
  • Ctrl+w = — 均等分配屏幕
  • :q — 关闭当前分屏

实用命令

  • :w — 保存,:q — 退出,:wq — 保存退出
  • :e {file} — 打开文件
  • :!{cmd} — 执行外部命令
  • :set nu — 显示行号
  • :set paste — 粘贴模式(避免自动缩进)
  • ZZ — 保存退出(等同 :wq

组合技

Vim 的强大在于 operator + motion 的组合:

  • d3w — 删除3个单词
  • y2j — 复制当前行及下面2行
  • >3j — 缩进当前行及下面3行
  • gUiw — 当前单词转大写
  • guaw — 当前单词转小写
  • =G — 从当前行到文件末尾自动缩进

掌握这个组合规则后,几乎不需要死记命令,Vim 自然就顺手了。