编辑模式下
i      从光标所在位置前开始插入文本
I      将光标移动到当前行行首,然后在其前插入文本
a      用于在光标当前所在位置之后追加新文本
A      将光标移动到所在行行尾,在那里插入新文本
o      在光标所在行的下面新开一行,并将光标置于行首,等待输入文本
O      在光标所在行的上面插入一行,并将光标置于行首,等待输入文本
G      将光标移动到文件最后一行
rc      用字符c替换光标所指向的渌前字符
nrc    用字符c替换光标所指向的前n个字符
x      删除光标处的字符
nx      删除从光标所在位置开始向右的n个字符
dw      删除一个单词。若光标个在某个单词中间,则从光标所在位置开始删至词尾并连同空格
ndw    删除n个指定的单词
db      删除光标所在位置之前的一个词
ndb    删除光标所在位置之前的n个词
dd      删除当前行
ndd    删除当前行及向后n-1行的内容
YY      将当前行的内容复制到缓冲区
nYY    将当前开始的n行内容复制到缓冲区
p      将缓冲区的内容写到光标所在位置02
/str    往右移动到有str的地方
?
str    往左移动到有str的地方
n            向相同的方向移动到有str的地方
N            向相反的方向移动到有str的地方
u            取消前一次的误操作
.            再执行一次前面刚完成的某个复杂的命令
ZZ          存盘退出
ZQ          不保存退出
命令行模式下
:n                跳到第n行
:q              退出Vi
:wq                  保存退出Vi
:
q!                  不保存退出Vi
:w              将当前编辑的内容存盘
:w file              将当前编辑的内容写入到file文件中
:n1,n2w        file 将从n1开始到n2结束的行写到file文件中
:nw file        将第n行写到file文件中
:1,.w file      从第一行起到光标所在位置的所有内容写入到file文件中
:.,$w file      将从光标当前位置起到文件结尾的所有内容写入到file文件中
:r file        打开另一个文件file
:e file        新建另一个文件file
:f file        将当前文件改名为file文件
:/str/              从当前光标开始往右移动到有str02的地方
str?                从当前光标开始往左移动到有str02的地方
:/str/w file        将包含有str的行写入到file文件中
:/str1/,/str2/w file 将从str1开始到str2结束的内容写入到file文件中
vi命令中哪一条是不保存退出:s/str1/str2/        将第一个str1替换为str2
:s/str1/str2/g      将所有的str1替换为str2
:.,$ s/str1/str2/g  将从当前位置到结尾的所有str1替换为str2
:n1,n2 co n3        将从n1行到n2行的内容复制到n3后面
:n1,n2 m n3          将从n1行到n2行的内容移动到n3后面
:d                  删除当前行
:nd                  删除从当前行开始的n行
:n1,n2 d            删除从n1行开始
到n2行结束的所有内容
:.,$ d              删除从当前行开始到结尾的所有内容
:/str1/,/str2/d      删除从str1开始到str2为止的所有内容
:!ls                运行shell命令ls(这里ls可用其他命令替换)
n1,n2 w !Command    将n1到n2行的内容作为Command命令输入。如果不指定n1和n2,则将整个文件的内容作为命令 Command的输入
:r !ls              将命令运行ls的结果写入当前行的位置(这里ls可用其他命令替换)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。