- vi的三种模式以及模式切换命令
三种模式分别是一般命令模式、编辑模式与命令行模式。
(1)一般命令模式切换到编辑模式的可用的按键说明
i与I 进入插入模式
(i为从目前光标所在处插入;I为在目前所在行的第一个非空格符处开始插入)
a与A 进入插入模式
(a为熊目前光标所在的下一个字符处开始插入;A为从光标所在行的最后一个字符处开始插入)
o与O 进入插入模式
(o为在目前光标所在的下一行处插入新的一行;O为在目前光标所在处的上一行插入新的一行)
r与R 进入替换模式
(r只会替换光标所在的那一个字符一次;R会一直替换光标所在的文字,知道按下ESC为止)
Esc 退出编辑模式,回到一般命令模式中
(2)一般命令模式切换到命令行模式的可用按键说明
:w 将编辑的数据写入硬盘文件中
:w! 若文件属性为【只读】时,强制写入该文件。
:q 退出vi
:q! 若曾修改过文件,又不想保存,使用!为强制退出不保存
:wq 保存后退出,若为:wq!则为强制保存后退出
:set nu 显示行号,设置之后,会在每一行的前缀显示该行的行号
:set nonu 与set nu相反,为取消行号
图1 vi三种模式的相互关系
2.vi的粘贴命令
p与P
p是将已复制的数据在光标的下一行粘贴
P是将已复制的数据在光标的上一行粘贴
3.使用vi的保存和退出命令
:w 将编辑的数据写入硬盘文件中
:w! 若文件属性为【只读】时,强制写入该文件。不过,到底能
不能写入,还是跟你该文件的权限有关
:q 退出
:q! 若曾修改过文件,又不想保存,使用!为强制退出不保存
:wq 保存后退出 若为:wq!则为强制保存后退出
4.使用vi的光标命令
0 或功能键Home (这是数字0)移动到这一行的最前面字符处
$ 或功能键End 移动到这一行的最后面字符
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 光标移动到这个文件的最后一行
gg 移动到这个文件的第一行,相当于1G
nG n为数字,移动到这个文件的第n行,例如20G则
会移动到这个文件的第20行
n<Enter> n为数字,光标向下移动n行
5.使用vi的查找命令
/word 向光标之下寻找一个名称为word的字符串。
例如:要在文件内查找text这个字符串,就输入/text
?word 向光标之上寻找一个字符串名称为word的字符串
n 继续向下查找
N 继续向上查找
6.使用vi的替换命令
:n1,n2s/word1/word2/g
格式为【:范围s/old/new】
n1与n2为数字,在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2.
g 表示多个替换(全部替换)
举例:在100到200行之间查找text1并替换为text2,
则“:100,200s/text1/text2/g”
从第一行到最后一行寻找text1字符串,并将该字符串替
换为text2,
则“:1,$s/text1/text2/g”
7.使用vi的复制和剪切命令
yy 复制光标所在的那一行
nyy n为数字,复制光标所在的向下n行,例如20yy则是复制20行
range y 块复制
y1G 复制光标所在行到第一行的所有数据
yG 复制光标光标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到改行行首的所有数据
y$ 复制光标所在的那个字符到改行行尾的所有数据
d 剪切选定块到缓冲区;
dd 剪切整行
d^ 剪切至行首
d$ 剪切至行尾
dw 剪切一个word
dG 剪切至档尾