vi分为3种模式:一般模式、编辑模式和命令行模式。
一般模式:vi打开文件即进入一般模式,可以进行删除、复制、粘贴,但不能编辑。
编辑模式:按下“i、o、a(插入)、r(替换)”任一即可进入编辑模式,按“Esc”退出。
命令行模式:按下“:、/、?” 任一即可,读取保存文件、大量替换字符,按“Esc”退出。
(1)一般模式
30↓ 向下移动30行
Ctrl+f 屏幕向下移动一页
Ctrl+b 屏幕向上移动一页
+ 光标下移一行(非空格)
- 光标上移一行(非空格)
20+空格 光标水平右移20个字符
0或“Home” 光标移动到该行最前字符
&或“End” 光标移动到该行最后字符
G 移动到文件最后一行
20G 移动到文件20行
gg 移动到文件第一行
20+回车 向下移动20行
/ word 向下查找word这个词
?word 向上查找word这个词
n 重复上一次操作
:100,200,s/word1/word2/g 在100到200行间找word1,并用word2替换
:1,$1,s/word1/word2/g 从第1行到最后1行间找word1,并用word2替换
:1,$1,s/word1/word2/g 从第1行到最后1行间找word1,并用word2替换,并显示提示字符给用户确认
x Del
X Backspace
10x 连续向后删除10个字符
dd 删除光标所在一整行
10dd 删除光标向下10行
d1G 删除光标到第一行所有数据
dG 删除光标到最后一行所有数据
d0 删除光标到该行第一个字符所有数据
d$ 删除光标到该行最后一个字符所有数据
yy 复制光标所在那行
10yy 复制光标向下10行
p 粘贴在光标上一行
P 粘贴在光标下一行
u 撤销
Ctrl+r 重做
. 重复前一个动作
(2)一般模式切换到编辑模式
i 从光标所在处插入
I 当前行所在第一个非空格符插入
a 光标下一个字符处插入
A 光标行最后一个字符处插入
o 光标所在下一行插入新行
O 光标所在上一行插入新行
r 替换光标所在那个字符一次
R 一直替换光标所在那个字符,知道按下Esc
(3)一般模式切换到命令行
:w 保存
:w! 强制写入
:q 离开vi
:q! 强制不保存退出
:wq 保存后离开
:wq! 强制保存后离开
ZZ 若文件没更动则不保存离开,若文件动过,则保存后离开
:w[filename] 另存
:r[filename] 将filename文件内容加到光标后
10,20 w[filename] 将10到20行保存成filename