Vi的编辑命令.docx
《Vi的编辑命令.docx》由会员分享,可在线阅读,更多相关《Vi的编辑命令.docx(8页珍藏版)》请在冰豆网上搜索。
Vi的编辑命令
Vi的编辑命令
Unix及其相似的操作系统中,为方便各种用户在各个不同的环境中使用,提供了一系列的编辑器,包括ex,edit,ed和vi,其中ex,edit,ed都是行编辑器,现在已很少有人使用,vi是linux中的全屏幕编辑器,其地位如同dos中的edit一样,它可以执行输出、删除、查找、替换、块操作等众多文本操作,它是一个文本编辑程序。
RedhatLinux9中提供的是vim,vi是vim的一个符号链接。
(8)vi的进入和退出
建立新文件:
输入命令vi,然后输入内容,最后存盘退出,给出文件名,使用命令:
“:
wq文件名”
输入命令“vi文件名”,然后编辑内容,最后存盘退出
编辑文件:
输入命令“vi文件名”,此文件已存在,编辑后存盘退出
退出命令:
存盘退出“:
wq”,不存盘退出“:
q”
注意:
vi有两种模式:
指令模式和编辑模式,进入后为指令模式,此时输入相关编辑命令,即进入编辑模式,编辑完后按Esc即回到指令模式。
(8)进入输入模式、删除和修改
指令模式指令:
a――从光标所在位置后面开始输入新文本
A――从光标所在行的行尾开始输入新的文本
i――从光标所在位置前面开始插入数据
I――从光标行的第一个非空格字符前面开始插入文本
o――在光标所在行下新增一行并进入输入模式
O――在光标所在行上方新增一行并进入输入模式
删除与修改:
x――删除光标处的一个字符
dd――删除光标所在行
r――修改光标所在字符,r后接着要修正的字符
R――进入替代状态,输入的文本会覆盖原来的数据
s――删除光标所在字符,并进入输入模式
S――删除光标所在的行,并进入输入模式
(8)光标的移动
光标除可以用方向键进行光标逐字符的移动外,同方向键等同的光标移动命令为
h――左移一列,l――右移一列
k――上移一列,j――下移一列,
如果要快速移动光标,可以在移动命令前加数字,如:
3j,6k,10l,3h
以单词为单位进行移动:
w――将光标移动到下一个单词的开头
b――将光标向后移动到一个单词的开头,与w功能相反
e――将光标移到下一个单词的末尾(最后一个字符处)
可以在这些命令前加上数字,使光标进行多个单词的移动
行内光标的快速移动:
$――将光标移动到当前行的行末
0――将光标移动到当前行的行首
n|――将光标移动到当前行的第n个字符上
fm――将光标移动到文本的下一个字符m上
使用行号定位:
:
setnumber――使编辑器显示行号
:
setnonumber――使编辑器不显示行号
nG――将光标移动到第n行
G――将光标移动到最后一行
:
n回车――将光标移动到第n行
:
$回车――将光标移动到文件的最后一行
将光标移动到当前屏幕的某些位置:
L――将光标移动到屏幕的最下面一行
M――将光标移动到屏幕的中间一行
H――将光标移动到屏幕的最上面一行
将光标返回到原来位置:
‘’――两个单引号,即击单引号两次,用于在一处进行修改后要返回原来的位置
让屏幕显示文件的指定位置(翻屏):
ctrl+d――屏幕定位到文件的下半屏文本
ctrl+u――屏幕定位到文件的上半屏文本
ctrl+f――屏幕定位到文件的下一屏文本
ctrl+b――屏幕定位到文件的上一屏文本
(8)字符的查找
从文件头向文件尾查找字符串:
/字符串(回车)
从文件头向文件尾查找下一个指定字符串:
n
从文件尾向文件头反向查找字符串:
?
字符串 (回车)
从文件尾向文件头反向查找下一个指定字符串:
N
(8)文本的删除命令
删除字符:
x――删除光标处的一个字符
3x――删除从光标开始的3个字符
删除行:
dd——删除当前行,光标移到下一行,并成为当前行
10dd――删除当前行开始的10行,光标移到下一行,并成为当前行
删除单词:
dw——删除光标处的一个单词,也可以使用数字来扩充该命令
注意:
如果将光标定位在一个单词的中间某个字符上,使用dw命令后,vi将删除从光标开始和空格字符结束的所有字符
在vi中,所有除空格以外的非字母数字字符,都将视为一个单词。
如果当前行的当前光标到行末的单词数不够删除时,vi将删除下一行的单词。
删除一行的一部分内容:
D――将光标置于一行的中间,输入D,则将删除从光标开始到行末的所有文字。
(不是整行)
删除光标至某一个字符之间的文本:
dfm——该命令删除从光标到第一个m之间的所有文本(包括光标处字母和字母m)
使用行号删除文本行:
:
5d——删除第5行的文本
:
5,10d——删除第5至10行的文本
:
3dd——删除从光标开始的3行内容
:
10,$d——删除从第10行开始到行末的内容
(6)文本添加命令:
i——在光标的左侧添加文本
a——在光标的右侧添加文本
I——将光标移到当前的行首,并切换到添加模式
A——将光标移到当前的行尾,并切换到添加模式
O--在光标的上方插入一个新行
o——在光标的下方插入一个新行
(7)撤消和重复命令
对于Vi来说,它只能撤消最后一次操作,而vim是它的增强,因此它可以进行多次撤消。
撤消命令:
u--撤消最后一次修改
U——撤消对当前行的所有修改,前提是光标没有移出当前行
重复命令:
.——英语的点命令“.”,它可以重复执行最后一次文本修改命令。
(8)vi的替换命令
文本替换命令:
①替换字符:
r——输入r后,不用切换到编辑模式,紧接着输入你用于替换的字符
②逐字符替换文本:
R——可以逐字符替换光标后面的文本
③多个字符替换单个字符:
s——实现删除光标处的一个字符,然后可以插入多个字符,相当于光标后添加,不会替换后面的字符
④多个单词替换单个单词:
cw——可以删除光标处的一个单词,并进入添加模式。
⑤行替换:
cc--删除当前行的所有字符,然后切换到插入模式。
⑥修改行的剩余部分:
C——删除从光标开始到行末的所有字符,进入添加模式
删除和替换命令的对照
命令类型
删除
替换
字符
x
r
单词
dw
cw
行
dd
cc
从光标到行尾之间的部分
D
C
从光标到字符m之间的部分
dfm
cfm
全局替换命令:
①搜索当前行的第一个实例:
:
s——查找和替换命令
:
s/字符串——查找文本中的所有字符串
:
s/字符串1/字符串2——在文本中搜索字符串1,并将光标所在行的第一个字符串1替换成字符串2
②搜索指定范围内的第一个实例:
:
1,10s/字符串1/字符串2——搜索第1至10行,将每行内的第一个字符串1替换成字符串2
③设置过滤条件进行搜索:
:
g/过滤条件/s/字符串1/字符串2——将文本内符合过滤条件的行的第一个字符串1替换成字符串2
④在同一行中替换所有实例:
:
s/字符串1/字符串2/g――将光标所在行的所有字符串1替换成字符串2
:
1,$s/字符串1/字符串2/g——将全文范围内所有行的字符串1替换成字符串2
注意:
前面1-3命令都只能搜索和替换第一个实例,命令4因为加了参数g,它在末尾,可以替换范围内的所有实例
(9)移动和复制文本
复制是指先将要复制的文本复制到缓冲区,再使用粘贴命令进行粘贴.
复制和粘贴行:
yy――将光标所在行复制到缓冲区
p――将缓冲区的内容粘贴到光标所在位置,可以多次使用p命令将缓冲区内的文本进行粘贴到目标位置
P——将复制的行粘贴到光标位置的上一行,而p命令是将复制的行粘贴到光标位置的下一行,总之这两个命令都不会粘到光标当前行
剪切和粘贴行:
当删除文本行之后,相当于执行了“剪切”命令,然后再使用p或P命令进行文本粘贴
复制字符和单词:
yw——复制从当前光标到该单词结束的文字到缓冲区
yl——复制当前光标处所在的一个字符到缓冲区
yfm——复制当前光标处到第一个字符m处的文字到缓冲区(包括m)
复制文本块:
:
行号,行号copy行号——将第一到第二行的文本复制到第三个行号指定行的后面(将文本块复制到第三行号指定行的下面)
移动文本块:
:
行号,行号move行号——将第一到第二行的文本移动到第三个行号指定行的后面(将文本块复制到第三行号指定行的下面)
注意:
在文本块的复制和移动命令中,“.”表示当前行,“$”表示文件尾,“0”表示文件头.
(10)文件保存命令
Vi不仅提供了文件存盘命令,用户也可以使用vi的放弃文件保存命令,或者在已有的文件尾添加内容的命令
①保存对文件的修改(不退出):
:
w
②保存对文件的修改后退出编辑器:
:
wq
③保存新版本(文件另存为):
:
w文件名——将当前文件另存为文件名所指定的副本
④取消对文件的修改:
:
q或者:
q!
⑤保存文本块:
:
行号,行号write文件名――将指定范围内的文本块保存到一个新文件中,命名为指定的文件名
注意:
如果要保存到的新文件已存在,要进行覆盖,可在命令后加一个叹号“!
”
⑥向文件追加文本:
:
行号,行号write>>文件名――将文本块追加到一个文件的末尾。
(11)vi编辑器和shell的交互
1读入文本文件:
在编辑文件时,经常需要读入另外一个文件的内容。
格式:
:
行号read文件名――将指定的文件的内容读入到当前vi编辑器指定行号的下面
2在vi中运行子shell:
格式:
:
!
命令——在编辑中运行“!
”后指定的命令,将结果显示在vi中,按回车键后清屏,不影响原来的编辑
3读入shell命令行的输出:
前面的命令将结果输出到屏幕上,并不影响当前被编辑的文件,也可以将shell命令的输出读入到当前被编辑的文件中。
格式:
:
行号read!
命令——将“!
”后的命令执行,将结果读入到指定的行后面