vim 命令参考表

1. 光标移动

1.1 基本移动

  • h → 向左移动
  • j → 向下移动
  • k → 向上移动
  • l → 向右移动
  • 0 → 移动到行首
  • $ → 移动到行尾
  • ^ → 移动到行首非空字符

1.2 单词与句子移动

  • w → 跳到下一个单词开头
  • e → 跳到下一个单词结尾
  • b → 跳到上一个单词开头
  • ) → 下一句
  • ( → 上一句

1.3 段落与配对符号

  • { → 上一段
  • } → 下一段
  • % → 跳转到匹配的括号、花括号或方括号

1.4 行与文件导航

  • gg → 跳到文件第一行
  • G → 跳到文件最后一行
  • :n → 跳到第 n
  • H, M, L → 屏幕顶部 / 中间 / 底部

2. 编辑命令

2.1 插入与删除

  • i → 在光标前插入
  • a → 在光标后插入
  • o / O → 在下方 / 上方新开一行
  • x → 删除光标处字符
  • dd → 删除当前行
  • D → 删除至行尾

2.2 复制、剪切、粘贴

  • yy → 复制当前行
  • y{motion} → 按动作复制(如 yw, y$
  • p → 在光标后粘贴
  • P → 在光标前粘贴
  • d{motion} → 按动作删除(相当于剪切)

2.3 替换与修改

  • r{char} → 替换单个字符
  • R → 连续替换直到退出
  • cw → 修改一个单词
  • cc → 修改整行
  • C → 修改至行尾

3. 撤销与重复

  • u → 撤销上一步操作
  • Ctrl + r → 重做
  • . → 重复上一个编辑命令

4. 搜索与替换

4.1 搜索

  • /pattern → 向前搜索
  • ?pattern → 向后搜索
  • n / N → 重复搜索(同方向 / 反方向)

4.2 替换

  • :%s/old/new/g → 全文替换
  • :s/old/new/ → 当前行替换
  • 追加 c 标志(如 gc)可逐个确认

5. 寄存器(Registers)

5.1 命名寄存器

  • "a ~ "z → 共 26 个命名寄存器
    • "ayy → 复制当前行到寄存器 a
    • "ap → 从寄存器 a 粘贴

5.2 特殊寄存器

  • " → 默认寄存器
  • "0 → 最近一次复制的内容
  • "1"9 → 最近九次删除记录
  • "% → 当前文件名
  • ": → 最近命令
  • "/ → 最近搜索内容

5.3 系统剪贴板

  • "+ → 系统剪贴板
    • "+y → 复制到系统剪贴板
    • "+p → 从系统剪贴板粘贴
  • "* → 主选择缓冲区(Linux/X11)

6. 文本对象(Text Objects)

文本对象允许对逻辑块执行命令(如“一个单词”、“一段文字”)。

6.1 常用文本对象

  • aw / iw → 一个单词 / 内部单词
  • as / is → 一句话 / 内部句子
  • ap / ip → 一段落 / 内部段落

6.2 成对符号对象

  • a" / i" → 含引号 / 引号内
  • a' / i' → 含单引号 / 单引号内
  • a) / i) → 含括号 / 括号内
  • a] / i], a} / i} → 方括号 / 花括号内
  • at / it → 含 HTML 标签 / 标签内内容

6.3 使用示例

  • daw → 删除一个单词(含空格)
  • ci" → 修改引号内文字
  • yap → 复制一个段落

7. 标记与跳转

7.1 标记

  • m{a-z} → 设置标记
  • 'a → 跳到标记 a 所在行
  • `a → 跳到标记 a 精确位置

7.2 跳转

  • Ctrl + o → 返回上一个位置
  • Ctrl + i → 前进到下一个位置
  • '' → 返回上一行
  • `` → 返回上一个精确光标位置

8. 窗口与文件操作

  • :e file → 打开文件
  • :w / :q → 保存 / 退出
  • :wq / ZZ → 保存并退出
  • :q! → 不保存退出
  • :split / :vsplit → 水平 / 垂直分割窗口
  • Ctrl + w + w → 切换窗口
  • :tabnew / gt / gT → 新标签 / 下一个 / 上一个

9. 可视与行操作

  • V → 选中整行
  • Ctrl + v → 选中矩形块(可视块)
  • 对选中内容可使用 y, d, >, < 等操作
  • = → 自动缩进选区

10. 其他常用命令

  • :set number → 显示行号
  • :set relativenumber → 显示相对行号
  • :set paste / :set nopaste → 开 / 关粘贴模式
  • :help {命令} → 查看帮助