1.vi编辑器有三种模式: 插入模式 命令模式 转义模式
2.单文本常用命令详解(vi 文件名)
命令分类 |
命令模式下输入 |
功能说明 |
进入插入模式 |
i |
在当前光标之前插入 |
a |
在当前光标之后插入 |
|
o |
在当前光标下面插入新的一行并输入 |
|
I |
在当前光标所在行行首插入 |
|
A |
在当前光标所在行行尾插入 |
|
O |
在当前光标上面插入新的一行并输入 |
|
光标移动 |
h、j、k、l |
光标分别向上下左右移动 |
G |
光标移动至文件的最后一行 |
|
n+G |
光标移动至第n行 |
|
删除字符 |
x |
删除光标所在位置上的字符 |
dd |
删除光标所在行 |
|
n+x |
向后删除n个字符,包含光标所在位置 |
|
n+dd |
向下删除n行,包括光标所在行 |
|
dG |
删除至文件尾 |
|
d1G |
删除至文件首 |
|
d$/D |
删除至行尾 |
|
d0 |
删除至行首 |
|
dw |
删除至词尾 |
|
ndw |
删除后面的n个词 |
|
复制粘贴 |
yy |
将光标所在行复制 |
y1G |
复制到文件首 |
|
yG |
复制到文件尾 |
|
y0 |
复制到行首 |
|
y$ |
复制到行尾 |
|
n+yy |
将从光标所在行起向下的n行复制 |
|
n+yw |
将从光标所在位置起向后的n个字符复制 |
|
p |
将复制的字符串粘贴在当前光标的后(下)面 |
|
P |
将复制的字符串粘贴在当前光标的前(上)面 |
|
字符串查找 |
/字符串 enter |
向后查找指定的字符串 |
?字符串 enter |
向前查找指定的字符串 |
|
n |
继续查找满足条件的字符串 |
|
显示行号 |
:set nu |
每一行前显示行号 |
:set nonu |
不显示行号 |
|
文件存取 |
:n,nw w文件名 |
将第n-m行的内容写入指定文件 |
:n,nw w >>文件名 |
将第n-m行的内容追加到指定文件末尾 |
|
:r 文件名 |
读取指定文件,插到当前光标所在的行下面 |
|
:r! |
在当前光标插入命令执行结果 |
|
:e 文件名 |
在原窗口打开新文件 |
|
:e! |
放弃所有修改重新编辑 |
|
存盘与退出 |
:w 文件名 |
以指定的文件名存盘,不退出VI |
:wq 文件名 |
以指定的文件名存盘并退出VI |
|
:q |
退出VI |
|
:q! |
强行退出VI,不管是否完成文档的保存工作 |
3.多文本编辑常用命令(vi 文件名列表)
命令模式下输入 |
功能说明 |
:edit 文件名 |
关闭当前文件并打开另一个文件,若当前文件未保存,则报错。 |
:write(:w) |
保存当前文件 |
:next |
编辑文件列表的下一个文件,若当前文件未保存,则报错。 |
:next! |
编辑文件列表的下一个文件,放弃当前文件的修改 |
:wnext |
保存当前文件并编辑文件列表的下一个文件 |
:args |
显示文件列表 |
:previous |
编辑文件列表的前一个文件,若当前文件未保存,则报错。 |
:wprevious |
保存当前文件并编辑文件列表的前一个文件 |
:first |
定位到文件列表的第一个文件 |
:last |
定位到文件列表的最后一个文件 |
:2next |
向后跳两个文件 |
:set autowrite |
设置自动保存 |
:set noautowrite |
取消自动保存 |
:args 文件名类别 |
编辑另一个文件列表 |
Ctrl+^ |
当前文件和刚编辑过的文件之间切换 |
:sp(:vsp) 文件名 |
分割出一个窗口,并在窗口中打开文件 |
:e |
在原窗口中打开新文件 |
Ctrl+W |
分割窗口之间的光标切换 |
:ls |
查看已打开的文件有多少个 |
:b |
|
:set diff |
比较两个文件,在两个文件中分别用该命令,查看比较结果 |
:vsp 文件名 |
打开一个新文件 |