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 :重复上一个操作。