进入编辑器的命令

命令 功能 示例
vi [打开文件] vi test.txt
vi + [打开文件] 定位到最后一行 vi + test.txt
vi + n [打开文件] 定位到指定行(第n行) vi +3 text.txt

命令行模式

vi编辑器的默认模式

命令 功能 示例 备注
ctrl + f 向下翻页
ctrl + d 向下翻页(半页)
ctrl + b 向上翻页
ctrl + u 向上翻页(半页)
h [移动光标] 向前(当前行)
l [移动光标] 向后移动光标(当前行)
j [移动光标] 下一行
k [移动光标] 上一行
w [移动光标] 向后到单词的第一个字母
e [移动光标] 向后到单词的最后个字母 光标在中间时,操作当前单词
b [移动光标] 向前到单词的第一个字母 光标在中间时,操作当前单词
0 [移动光标] 当前行行首 数字零
^ [移动光标] 当前行第一个单词的第一个字母
$ [移动光标] 当前行行尾
gg [移动光标] 第一行,第一个字母
G [移动光标] 最后一行,第一个字母
n,G [移动光标] 指定行行首(第n行) 5 G 分2步操作,先输入行号,再按G
n,+ [移动光标] 向下移动n行 分2步操作
n,- [移动光标] 向上移动n行 分2步操作
H [移动光标] 屏幕中的第一行
M [移动光标] 屏幕中的中间行
) [移动光标] 到句尾
( [移动光标] 到句首
} [移动光标] 到段尾
{ [移动光标] 到段首
yw 复制一个单词
yy 复制一行
p 粘贴,光标下一行 对 yw 命令来说是,光标后方
P 粘贴,光标上一行 对 yw 命令不生效
r 修改光标所在的内容 分2步操作,先按r,然后输入要替换的值
R 替换光标所到之处的字符 (替换模式)直到按下「ESC」键为止
u 撤销
ctrl + r 回退刚刚的撤销操作
. 执行刚刚的操作 不包含”撤销“、”回退“操作
x [删除] 光标选中的内容
n,x [删除] 光标且向后n个内容 分2步操作,先输入数量,再按x
X [删除] 光标前面的内容
n,X [删除] 光标向前n个内容 分2步操作,先输入数量,再按X
dd [删除] 光标选中的行 双击d
n,dd [删除] 光标且向下n行 5 dd 分2步操作,先输入数量,再双击d

末行模式

命令模式下,按 : 进入此模式

命令 功能 示例 备注
w 保存刚刚的操作
q 退出vi编辑器 如果已经修改则无法退出
q! 强制退出vi编辑器 未保存的修改不生效
wq 保存并退出vi编辑器
shift + zz 保存并退出vi编辑器(同wq) 按住shift,然后双击z
set nu 每一行前面列出行号
/ [查找] 查找指定内容 /aaa 查找字符 aaa
? [查找] 同 / ?aaa
n [查找] 模式下定位到下一个内容 ?模式下,代表向上查找
N [查找] 模式上定位到下一个内容 ?模式下,代表向下查找
n,m 从n行开始到m行结束,执行后续命令 需要与其他命令同时使用
n,+m 从n行开始向下m行,执行后续命令 -m代表向上m行 需要与其他命令同时使用
0,$ 从文档开始行到最后一样,执行后续命令 需要与其他命令同时使用
s/aaa/bbb [替换] 将光标所在行的aaa替换为bbb 行中的第一个aaa
s/aaa/bbb/g [替换] 将光标所在行的aaa替换为bbb 行中的全部aaa
s/aaa/bbb/gi [替换] 同上 行中的全部aaa(不区分大小写)
[n,m]s/aaa/bbb/gi [替换] 将n到m行的aaa替换为bbb 1,3s/aaa/bbb/gi 将1到3行的aaa替换为bbb
[n,+m]s/aaa/bbb/gi [替换] 将n和向下m行的aaa替换为bbb 1,+3s/aaa/bbb/gi
[n,m]d [删除] 1到3行内容 1,3d
[n,m]y [复制] 1到3行内容 1,3y
! 通过!可以执行外部命令 !ls -l / 通过ls命令查看 / 下的文件列表

插入模式

命令模式下,通过快捷键进入 按下「ESC」键,退出到命令模式

命令 功能
i [进入插入模式] 光标前进行后续操作
I [进入插入模式] 光标定位到行首第一个单词
a [进入插入模式] 光标后进行后续操作
A [进入插入模式] 光标定位到行尾
o [进入插入模式] 光标下插入空白行进行后续操作
O [进入插入模式] 光标上插入空白行进行后续操作