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
- 向后搜索 patternn
- 重复上一次搜索(向前)N
- 重复上一次搜索(向后):%s/old/new/g
- 全局替换 old 为 new:%s/old/new/gc
- 全局替换 old 为 new,每次替换前确认
文件操作¶
:w
- 保存文件:q
- 退出 Vim:wq
或ZZ
- 保存并退出:q!
或ZQ
- 不保存并退出:e filename
- 打开或创建文件:split filename
- 水平分割窗口并打开文件:vsplit filename
- 垂直分割窗口并打开文件
其他¶
Ctrl + g
- 显示当前文件信息Ctrl + f
- 向前翻页Ctrl + b
- 向后翻页Ctrl + d
- 向下滚动半页Ctrl + u
- 向上滚动半页Ctrl + e
- 向下滚动一行Ctrl + y
- 向上滚动一行