linux中vi使用技巧常用技巧和高级替换
模式切换:
i,I 进入插入模式:i为从目前光标所在处插入;I为在目前所在列的第一个非空格的字符处开始插入。
a,A 进入插入模式:a为从目前光标所在的下一个字符处开始插入;A为从光标所在列的最后一个字符处开始插入。
o,O 进入插入模式:o为在目前光标所在的下一处插入新的一列;O为在目前光标所在处的上一列插入新的一列。
r,R 进入取代模式:r只会取代光标所在的哪一个字符一次;R会一直取代光标所在的文字,直到按下ESC键为止。
一、常用小技巧:
ctrl+f 向下翻页相当于page down键;
ctrl+b 向上翻页相当于page up键;
ctrl+d 向下移动半页;
ctrl+u 向上移动半页;
0(零)或HOME键:移动到当前行的最前面;
$或END键:移动到这一行的最后面;
G:移动到这个文件的最后一列;
nG:n为数字,移动到这个文件的地n列;如20G移动到这个文件的第20列(配合:set nu 使用);
gg:移动到这个文件的第一列,相当于1G;
n<Enter>:n为数字,光标乡下移动n列;
二、查找与替换
/word :向下查找包含/后的字符,例如:/a向下查找带a的字符(常用n向下查找)。
?word :向上查找一个字符串名称为word的字符串,和/word相反。
n :这个n是英文按键,代表重复上一次搜索的动作,如果我们上次使用了/word来查找,按下n键之后会查找下一带有word的字符,可重复多次。
N ;与n相反,向上搜索。
三、批量替换
:n1,n2s/word1/word2/g :n1与n2为数字,在第n1与n2列之间查找word1这个字符串,并替换成word2;比如在第100到200行之间搜索a并替换为A则用(:100,200s/a/A/g);/g表示替换全部。
:1,$s/word1/word2/g :从第一行到最后一行寻找word1字符串,并将该字符串替换为word2。
:1,$s/word1/word2/gc :从第一行到最后一行寻找word1字符串,并将该字符串替换为word2,并且在替换前需要用户确认是否确定替换。
1、在行首加上#
首先,在文档中输入一些内容,要输入多行效果才会比较明显
按ESc键进入命令模式输入如下命令
:%s/^/#/g
此时vi文档中所以有内容的行首都加上了#;
加上了之后想要还原怎么办呢?
执行下面这条命令就能复原了
:%s/^#//g
2、在行尾加上“;”号
:%s/$/;/g
还原
:%s/;//g
四、删除、复制与粘贴
x,X :在一行中,小写的x为向后删除一个字符(相当于delete键),大写的X为向前删除一个字符(想当于backspace键)。
dd :删除光标所在的那一整行
ndd :n为数字,删除光标所在的向下n行,如20dd则是删除20行。
yy :复制光标所在的那一行。
nyy:n为数字,复制光标所在的向下n行。
p,P :小写的p为将复制的内容粘贴在光标所在的下一行,大写的P为将复制的内容粘贴在光标所在的上一行。
u :复原前一个操作(相当于windows系统中的word文档中的撤销)。
ctrl+r :重复上一个操作。