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
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值