首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

vi小技艺

2012-08-07 
vi小技巧1、10,20行整体右移4个空格:10,20s/^//g?2、10,20行整体左移4个空格:10,20s/^//g?3、删除每行尾部的

vi小技巧

1、10,20行整体右移4个空格

:10,20s/^/    /g

?

2、10,20行整体左移4个空格

:10,20s/^    //g

?

3、删除每行尾部的一个字符

:%s/.$//g

?或者

:1,$/.$//g

?

4、替换字符?&或者\0都表示前面模式匹配的字符串

如有文件

ip?group

7

10

200

这是个不全的ip表,可以使用如下命令将其补全,假设都是192.168.128.网段

:%s/^/192.168.128./g

?或者

:%s/[0-9][0-9]*/192.168.128.&/g

或者

:%s/[0-9][0-9]*/192.168.128.\0/g

?

5、更加灵活更加准确的替换

在匹配时可以使用模式,将需要精确替换的模式用\(和\)括起来,就代表一个精确匹配组,

在替换时允许有多个匹配组,在替换时,分别用\1,\2,\3表示匹配组

例如:

代码中有如下语句:

pInfo->next->name?=?strName;

我们发现不是它的next节点的name,而是previous节点的name,那么我们可以使用命令将其替换了:

:%s/\([a-zA-Z_][a-zA-Z0-9_]*\)->\([a-zA-Z][a-zA-Z]*\)->name/\1->pre->name
?

?

热点排行