Vim Cheat Sheet

光标

  • h - 左移光标
  • j - 下移光标
  • k - 上移光标
  • l - 右移光标
  • w - 移动到下个单词开头
  • W - 移动到下个单词开头(单词含标点)
  • e - 移动到下个单词结尾
  • E - 移动到下个单词结尾(单词含标点)
  • b - 移动到上个单词结尾
  • B -移动到上个单词结尾(单词含标点)
  • O - 移动到行首
  • ^ - 移动到行首的非空白符
  • $ - 移动到行尾
  • G - 移动到文档末行行首
  • {n}G - 移动到第{n}行

Tip: 命令前追加数字表示命令的重复次数,比如5j表示向下移动4行

插入模式 - 插入/追加文本

  • i - 从光标前开始插入字符
  • I - 从行首开始插入字符
  • a - 从光标后开始插入字符
  • A - 从行尾开始插入字符
  • o - 在当前行之下另起一行,开始插入字符
  • O - 在当前行至上另起一行,开始插入字符
  • ea - 从当前单词末尾开始插入
  • Esc - 退出插入模式

编辑

  • r - 替换当前字符
  • J - 将下一行合并到当前行
  • cc - 清空当前行,然后进入插入模式
  • cw - 从光标位置开始,修改单词
  • c$ - 从光标位置开始,修改当前行
  • s - 删除当前字符,然后进入插入模式
  • S - 清空当前行,然后进入插入模式(同cc)
  • xp - 当前字符后移
  • u - 撤销
  • Ctrl + r - 重复
  • .- 再次执行上个命令

选择文本(可视化模式)

  • v - 进入可视化模式,移动光标高亮选择,然后可以对选择的文本执行命令(例如y-复制)
  • V - 进入可视化模式(行粒度选择)
  • o - 切换光标到选择区开头/结尾
  • Ctrl + v - 进入可视化模式(矩阵选择)
  • O - 切换光标到选择区的角
  • aw - 选择当前单词
  • ab - 选择被()包裹的区域(含括号)
  • aB - 选择被{}包裹的区域(含花括号)
  • ib - 选择被()包裹的区域(不含括号)
  • iB - 选择被{}包裹的区域(不含花括号)
  • Esc - 退出可视化模式

可视化模式命令

  • < - 向左缩进 | > - 向右缩进
  • y - 复制
  • d - 剪切
  • ~ - 大小写切换

剪切、复制、粘贴

  • yy - 复制当前行
  • 2yy - 复制2行
  • yw - 复制当前单词
  • y$ - 复制,从光标位置到行末
  • p - 在光标后粘贴
  • P - 在光标前粘贴
  • dd - 剪切当前行
  • 2dd - 剪切2行
  • dw - 剪切当前单词
  • D - 剪切,从光标位置到行末
  • d$ - 剪切,从光标位置到行末(同D)
  • x - 剪切当前字符

查找/替换

  • /pattern - 查找pattern
  • ?pattern - 向上查找pattern
  • n - 查找下一个
  • N - 查找上一个
  • :%s/old/new/g - 替换全部
  • :%s/old/new/gc - (逐个)替换

多文件

  • :e filename - 新建缓冲区打开filename
  • :bnext or :bn - 切换到下个缓冲区
  • :bprev or :bp - 切换到上个缓冲区
  • :bd - 关闭缓冲区
  • :sp filename - 新建缓冲区打开 filename 并水平分栏
  • :vsp filename - 新缓冲区打开 filename 并垂直分栏
  • Ctrl + ws - 水平分栏
  • Ctrl + ww - 在分栏间切换
  • Ctrl + wq - 关闭分栏
  • Ctrl + wv - 垂直分栏
  • Ctrl + wh - 切换到右侧分栏
  • Ctrl + wl - 切换到左侧分栏
  • Ctrl + wj - move cursor to the window below (horizontal split)
  • Ctrl + wk - move cursor to the window above (horizontal split)

页签

  • :tabnew filename or :tabn filename - 创建新页签/在新标签页中打开文档
  • Ctrl + wT - 将分栏变成页签
  • gt or :tabnext or :tabn - 切换到下一个页签
  • gT or :tabprev or :tabp - 切换到上一个页签
  • Xgt - 切换到第X个页签
  • :tabmove # - 移动页签到第 # 位(下标从0开始)
  • :tabclose or :tabc - 关闭当前页签
  • :tabonly or :tabo - 关闭其他页签

Tip: “X” 表示一个具体的数字

退出

  • :w - 保存
  • :wq or :x or ZZ - 保存并退出
  • :q - 退出(修改未保存时警告)
  • :q! or ZQ - 不保存强制退出

补充

  • nu 显示光标所在行号
  • :set nu 显示所有行号
多谢您的大力支持