VIM 复杂匹配替换 示例

1.带表达式的替换示例

有很多行

drv[16].vif = drv_if.xxxx[0];

drv[17].vif = drv_if.xxxx[1];

drv[18].vif = drv_if.xxxx[2];

drv[19].vif = drv_if.xxxx[3];

..................

想要将 左边 drv[16] 改为 drv[15] , 即匹配左边数字并减1

使用命令

%s,drv\[\(\d\+\)\],\=("drv[").(submatch(1)-1).("]")

拆分来看

1 %s,a,b 或%s/a/b 可以用b替换A

2 drv  指文中匹配drv字符

3 \[  中括号使用\来标识,是个符号

4 \( \)  通过括号括起来的字符可以被保存起来,再后续使用\1 或者submatch(1) 来取用

5 \d  表示匹配数字

6 \+ 表示匹配多个 与\d组合 表示匹配多个数字

7 \= 表示后续是个表达式 

8 \=后().().()的方式将后续拼接起来

9 "drv[" 表示字符串 drv[

10 submatch(1)-1 即数字表达式 

2.根据行号进行的替换内容

原内容为

test_001

test_001

test_001

test_001

test_001

想要根据行号变为  101 102 103 104

使用替换语句

%s,\d\+,\=line('.')+100,g

拆分来看

1.%s,表示全局替换

2. \d\+ 匹配多个数字

3. \= 表示后面是个函数

4 line('.') 返回当前行的行号

5 +100 表示 行号的数加100

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值