Gvim高级操作001--对匹配关键字进行操作--数字运算结果替换

Gvim高级替换--对匹配关键字进行操作

在编写代码过程中,我们有时需要对具有一定规律的代码进行修改,此时采用手动修改,容易出错,效率低;若采用gvim替换操作实现能够有效提高工作效率。

1、匹配字符串,进行修改替换

如下所示,假如有50个类似的信号,需要在信号名后面,添加_nc,该如何使用gvim替换操作实现。

举例如下:替换前                        替换后

wire [1:0] ppu_parity ;

wire [1:0] ppu_ecc ;

wire [1:0] ppu_parity_nc ;

wire [1:0] ppu_ecc_nc ;

使用命令:

如果需要替换的信号分布在文件中的各个位置,则使用全局符号 %              

: % s/\(\w\+\)\s*;/\1_nc;/gc

如果需要替换的信号集中在文件中的110行到200行,则使用范围:110,200

: 110,200  s/\(\w\+\)\s*;/\1_nc;/gc

S/aaa/bbb/gc 表示用bbb替换aaa,g表示将一行中出现的所有aaa都用bbb替换

c表示替换前会进行确认,输入y表示替换,输入n表示不替换。

\(xxx\)

表示匹配关键词xxx,括号中的内容可以用\1表示,如果匹配选项有两个括号,则依次用\1和\2表示匹配内容。

2、匹配数字,进行运算,使用运算结果替换

如下所示,假如存在大量需要对数字进行有规律修改的情况时,可以用替换操作实现,

  1. 使用括号( )匹配关键字;
  2. 使用submatch(n)调用数字进行加减,其中n代表第几个匹配括号;
  3. 使用\=将加减运算结果进行替换;

举例如下:                     

替换前

assign mac_dat0= { data_in [39:32], data_in[47:40], data_in[55:48], data_in[63:56] };

替换后

assign mac_dat0= { data_in [71:64], data_in[79:72], data_in[87:80], data_in[95:88] };

使用命令: 

: %  s/ \(\d\d\)/\=(submatch(1)+32)/gc

\(\d\d\)表示匹配2个连续数字, submatch(1) 表示调用第一个括号匹配的字符

使用数字计算结果时,使用\=表示计算结果、

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值