CentOS系统Vi工作模式及常用命令使用用法.docx
《CentOS系统Vi工作模式及常用命令使用用法.docx》由会员分享,可在线阅读,更多相关《CentOS系统Vi工作模式及常用命令使用用法.docx(8页珍藏版)》请在冰豆网上搜索。
CentOS系统Vi工作模式及常用命令使用用法
VI的工作模式
Vi有三种基本的工作模式:
1.指令模式(CommandMode):
指令模式主要使用方向键移动光标位置进行文字的编辑
2.文本输入模式(InputMode):
在指令模式下(CommandMode)按a/A键、i/I键、o/O键进入文本模式
3.行末模式(LastlineMode):
末行模式主要进行一些文字编辑辅助功能,比如字串搜索、替代、保存文件等操作
指令模式(CommandMode)下输入a、i、o进入文本输入模式(InputMode)
文本输入模式(InputMode)下按ESC进入指令模式(CommandMode)
指令模式(CommandMode)下输入:
进入末行模式(LastlineMode)
末行模式(LastlineMode)下指令错误则返回指令模式(CommandMode)
VI命令常用用法
这里介绍的都是最基本最常用的vi命令~折腾vps够用了,比如退出vi的命令等等~
0、进入vi的命令
vifilename:
打开或新建文件,并将光标置于第一行首
vinfilename:
打开文件,并将光标置于第n行首
vifilename:
打开文件,并将光标置于一行首
vi/patternfilename:
打开文件,并将光标置于第一个与pattern匹配的串处
vi-rfilename:
在上次正用vi编辑时发生系统崩溃,恢复filename
vifilename....filename:
打开多个文件,依次进行编辑
1、指令模式(CommandMode)
PageDn-----向下移动一页
PageUp-----向上移动一页
0-----光标移动至行首
h-----光标左移一格
l-----光标右移一格
j-----光标下移一行
k-----光标上移一行
$+A-----将光标移动到该行最后
d+方向键-----删除文字
dd-----删除整行
pp-----整行复制
r-----修改光标所在的字符
S-----删除光标所在的列,并进入输入模式
2、文本输入模式(InputMode)
a-----在光标后开始插入
A-----在行尾开始插入
i-----从光标所在位置前面开始插入
I-----从光标所在列的第一个非空白字元前面开始插入
o-----在光标所在列下新增一列并进入输入模式
O-----在光标所在列上方新增一列并进入输入模式
ESC-----返回命令行模式
3、末行模式(LastlineMode)
:
q-----结束Vi程序,如果文件有过修改,先保存文件
:
q!
-----强制退出Vi程序(不保存修改)
:
wq-----保存修改并退出程序
ZZ-----保存修改并退出程序(在没有开启CapsLock时按住Shift键再按两个z键)
:
setnum-----设置行号
搬移与复制
==========
利用delete及put指令可完成资料搬移之目的。
利用yank及put指令可完成资料复制之目的。
yank和delete可将指定的资料复制到记忆体缓冲区,而藉由put指令
可将缓冲区内的资料复制到萤幕上。
例:
搬移一行.在该行执行dd
.游标移至目的地
.执行p
复制一行.在该行执行yy
.游标移至目的地
.执行p
.指令重复
=========
在指令模式中,可在指令前面加入一数字n,则此指令动作会重复执行n
次。
例:
删除10行.10dd
复制10行.10yy
.游标移至目的地
.p
指标往下移10行.10j
..取消前一动作(Undo)
===================
即复原执行上一指令前的内容。
u恢复最後一个指令之前的结果。
U恢复游标该行之所有改变。
..搜寻
=====
在vi中可搜寻某一字串,使游标移至该处。
/字串往游标之後寻找该字串。
?
字串往游标之前寻找该字串。
n往下继续寻找下一个相同的字串。
N往上继续寻找下一个相同的字串。
..资料的连接
===========
J句子的连接。
将游标所在之下一行连接至游标该行的後面。
若某行资料太长亦可将其分成两行,只要将游标移至分开点,进入输入模式
(可利用a、i等指令)再按《Enter》即可。
..环境的设定
===========
:
setnu设定资料的行号。
:
setnonu取消行号设定。
:
setai自动内缩。
:
setnoai取消自动内缩。
自动内缩(automaticindentation)
在编辑文件或程式时,有时会遇到需要内缩的状况,『:
setai』即提供自
动内缩的功能,用下例解释之:
.vitest
.(进入编辑视窗後)
thisisthetestforautoindent
《Tab》startindent←:
setai(设自动内缩)
《Tab》data
《Tab》data
《Tab》data←:
setnoai(取消自动内缩)
theendofautoindent.
.注:
可删除《Tab》字元。
从当前位置删除到行尾
d$
从当前位置复制到行尾
y$如果要粘贴到其他地方p就可以了
13.
:
%s/old_word/new_word/g
这个指令是于在整个文件中替换特定字符串
14.光标控制
k:
上移nk上移n行
j:
下移nj下移n行
将光标移到第n行,按下mk
将光标移到第m行,按下"ay'k
即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等
这样就可以将你常用的需要复用的内容粘贴到不同的寄存器中以备用
想粘贴到某处,直接将光标移到某地,按下‘ap即可,以此类推,b,c........寄存器等
在当前屏幕中
H跳到第一行
M跳到中间一行
L跳到最后一行
15.
表8-2删除命令
删除命令操作
dl删除当前字符(与x命令功能相同)
d0删除到某一行的开始位置
d^删除到某一行的第一个字符位置(不包括空格或TAB字符)
dw删除到某个单词的结尾位置
d3w删除到第三个单词的结尾位置
db删除到某个单词的开始位置
dW删除到某个以空格作为分隔符的单词的结尾位置
dB删除到某个以空格作为分隔符的单词的开始位置
d7B删除到前面7个以空格作为分隔符的单词的开始位置
d)删除到某个语句的结尾位置
d4)删除到第四个语句的结尾位置
d(删除到某个语句的开始位置
d}删除到某个段落的结尾位置
d{删除到某个段落的开始位置
d7{删除到当前段落起始位置之前的第7个段落位置
dd删除当前行
d/text删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的
位置(但不包括该字样)之间的内容
dfc删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括
该字符)之间的内容
dtc删除当前行直到下一个字符“c”所出现位置之间的内容
D删除到某一行的结尾
d$删除到某一行的结尾
5dd删除从当前行所开始的5行内容
dL删除直到屏幕上最后一行的内容
dH删除直到屏幕上第一行的内容
dG删除直到工作缓存区结尾的内容
d1G删除直到工作缓存区开始的内容
替换命令
替换命令操作
s将当前字符替换为一个或多个字符
S将当前行替换为一个或多个字符
5s将从当前字符开始的5个字符替换为一个或多个字符
vi替换使用规则:
:
g/s1/s/s2/s3/g
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串