Skip to content

normal mode

// I
跳转到行首,并进入 insert_mode

// a
跳转到当前字符后,并进入 insert_mode

// A
跳转到行尾,并进入 insert_mode

// o
创建并跳转到下一新行,进入 insert_mode

// O
创建并跳转到上一新行,进入 insert_mode

// s
删除当前字符,并进入 insert_mode

// S
删除当前行的字符(不包括空格),并进入 insert_mode

// h 光标向左     k
// j 光标向下   h   l
// k 光标向上     j
// l 光标向下

// w
跳转到下一个字母

// W
跳转到下一个字母(以空格为区分)

// e
跳转到下一个字母结尾

// E
跳转到下一个字母结尾(以空格为区分)

// b
跳转到上一个字母

// B
跳转到上一个字母(以空格为区分)

// 0
到这一行的开头

// u
撤销操作

// U
回到上次操作的位置

// r + ?
将当前字符替换为?

// R
进入replace_mode

// x
删除当前字符


> ----- 操作 + 动作 -----

// d + 空格
删除当前字符

// dd
删除整行

// dw
删除从光标位置到当前单词的末尾的所有字符。

// d + number + 方向
上下删除行,左右删除number个字符

// p
粘贴

// number + 操作
执行某操作n次

// y
复制

// c
更改

// cw
更改光标到单词结尾的部分

// ciw
更改整个单词

// ci"
更改" "中的内容

// yi"
复制" "中的内容

// di"
删除" "中的内容

// fv
找到后面的第一个'v'(同一行)

// Fv
找到前面的第一个'v'(同一行)

// df:
找到第一个':',并删除光标到':'的内容(包括':')

// df:
找到第一个':',并复制光标到':'前的内容(包括':')

// gg
移动文件开头

// G
移动文件最后一行

// gU
在 Visual 模式下选择文本后,按下 `gU` 键,将选中的文本转换为大写。

// gu
在 Visual 模式下选择文本后,按下 `gu` 键,将选中的文本转换为小写。

// g~
反转大小写


// :split or ctrl+w +s
上下分屏

// :vsplit or ctrl+w +v
左右分屏

// ^/$:跳到行首/行尾

ctrl + O 切换模式 ctrl + [ 切换为normal模式

a - 在光标后插入文本 b - 光标向后移动一个单词 c - 删除文本并进入插入模式 d - 删除文本 e - 光标向后移动到单词的末尾 f - 在当前行查找指定字符 g - 执行一些特殊操作 h - 光标向左移动一个字符 i - 在光标前插入文本 j - 光标向下移动一行 k - 光标向上移动一行 l - 光标向右移动一个字符 m - 在指定位置标记 n - 查找下一个匹配项 o - 在当前行下方插入新行 p - 粘贴剪贴板内容 q - 开始记录宏 r - 替换当前字符 s - 删除字符并进入插入模式 t - 在当前行查找指定字符并移动到前一个字符 u - 撤销上一次操作 v - 启动可视模式 w - 光标向后移动一个单词 x - 删除当前字符 y - 复制文本 z - 执行一些特殊操作

其他操作

以16进制格式查看文件

:%xxd

Vim 常用快捷键表

基本移动

  • h - 向左移动一个字符
  • j - 向下移动一行
  • k - 向上移动一行
  • l - 向右移动一个字符
  • 0 - 移动到行首
  • ^ - 移动到行首第一个非空白字符
  • $ - 移动到行尾
  • gg - 移动到文件开头
  • G - 移动到文件末尾
  • nG - 移动到第 n 行
  • w - 移动到下一个单词的开头
  • b - 移动到上一个单词的开头
  • e - 移动到下一个单词的末尾

插入模式

  • i - 在光标前插入
  • I - 在行首插入
  • a - 在光标后插入
  • A - 在行尾插入
  • o - 在当前行下方插入新行
  • O - 在当前行上方插入新行

删除和修改

  • x - 删除光标下的字符
  • X - 删除光标前的字符
  • dd - 删除当前行
  • dw - 删除光标后的单词
  • db - 删除光标前的单词
  • D - 删除从光标到行尾的内容
  • C - 删除从光标到行尾的内容并进入插入模式
  • s - 删除光标下的字符并进入插入模式
  • S - 删除当前行并进入插入模式
  • r - 替换光标下的字符
  • R - 进入替换模式

复制和粘贴

  • yy - 复制当前行
  • yw - 复制光标后的单词
  • yb - 复制光标前的单词
  • p - 在光标后粘贴
  • P - 在光标前粘贴

撤销和重做

  • u - 撤销上一次操作
  • Ctrl + r - 重做上一次撤销的操作

搜索和替换

  • /pattern - 向前搜索 pattern
  • ?pattern - 向后搜索 pattern
  • n - 重复上一次搜索(向前)
  • N - 重复上一次搜索(向后)
  • :%s/old/new/g - 全局替换 old 为 new
  • :%s/old/new/gc - 全局替换 old 为 new,每次替换前确认

文件操作

  • :w - 保存文件
  • :q - 退出 Vim
  • :wqZZ - 保存并退出
  • :q!ZQ - 不保存并退出
  • :e filename - 打开或创建文件
  • :split filename - 水平分割窗口并打开文件
  • :vsplit filename - 垂直分割窗口并打开文件

其他

  • Ctrl + g - 显示当前文件信息
  • Ctrl + f - 向前翻页
  • Ctrl + b - 向后翻页
  • Ctrl + d - 向下滚动半页
  • Ctrl + u - 向上滚动半页
  • Ctrl + e - 向下滚动一行
  • Ctrl + y - 向上滚动一行