1. 跳转
-
j
:向下移动一行; -
k
:向上移动一行; -
h
:向左移动一个字符; -
l
:向右移动一个字符; -
w
:移动到下一个单词的起始位置; -
b
:移动到上一个单词的起始位置; -
0
:移动到行首; -
$
:移动到行尾; -
G
:移动到文件的最后一行; -
gg
:移动到文件的第一行; -
:20<Enter>
:跳转到第20行;
2. 搜索
/pattern<Enter>
:搜索符合指定模式的内容(支持正则表达式);n
:移动到下一个匹配处;N
:移动到上一个匹配处;
3. 删除
x
:删除下一个字符(光标所在位置);X
:删除上一个字符(光标之前的位置);5x
:删除后面5个字符;5X
:删除前面5个字符;dd
:删除当前行;5dd
:向下删除5行;dG
:删除光标所在行到文件最后一行之间的所有数据;dgg
:删除光标所在行到文件第一行之间的所有数据;d$
:删除光标所在位置到行尾间的所有数据;d0
:删除光标所在位置到行首间的所有数据;u
:撤销动作;
4. 复制粘贴
yy
:复制当前行;3yy
:向下复制3行(包括当前行);yG
:复制光标所在行到文件最后一行之间的所有数据;ygg
:复制光标所在行到文件第一行之间的所有数据;y$
:复制光标所在位置到行尾间的所有数据;y0
:复制光标所在位置到行首间的所有数据;p
:粘贴到下一行、或当前位置之后;P
:粘贴到上一行、或当前位置之前;
5. 替换
:10,20/pattern/replacement/g<Enter>
:将 [10, 20] 行间所有匹配 pattern 的内容替换为 replacement;(与 sed 的 s 命令相同)($
表示最后一行)%s/pattern/replacement/g<Enter>
:将 [1, $] 行间所有匹配 pattern 的内容替换为 replacement,等价于:1,$/pattern/replacement/g<Enter>
;
6. 编辑
-
i
:在当前位置之前插入; -
I
:在当前行的第一个非空格符处开始插入; -
a
:在当前位置之后插入; -
A
:在当前行的最后一个字符(包括空格)处开始插入; -
o
:在当前行下面添加一行; -
O
:在当前行上面添加一行; -
:r filename<Enter>
:读入 filename 对应文件的内容,并将其添加到当前行的下一行; -
:w<Enter>
:保存修改; -
:w filename<Enter>
:将当前内容另存为 filename 对应的文件; -
:10,20 w filename<Enter>
:将 [10, 20] 行之间的所有内容另存为 filename 对应的文件; -
:q<Enter>
:退出; -
:q!<Enter>
:忽略修改并退出; -
:wq<Enter>
:保存修改并退出;
7. 其他
J
:合并当前行与下一行为一行(使用空格分开);:10,20>><Enter>
:将 [10, 20] 行向右缩进两个 tab(两个>
);:10,20<<<Enter>
:将 [10, 20] 行向左缩进两个 tab(两个<
);:set nu<Enter>
:显示行号;set nonu<Enter>
:隐藏行号;:set ts=4<Enter>
:设置 tab 宽度为4;