用vi进行verilog模块例化的技巧

在编辑verilog代码时,特别在例化模块时,端口较多时,手动编辑比较费事,一般用vi中的正则表达式比较方便,举一最常用的例子,
将. clk改成. clk(clk),
命令为
:114 s/\.\(.*\)_*/\.\1(\1),/g
解释
其中114为行数;
s为字符替换符;
/为要替换的字符开始字符
\.匹配 . 字符;
\(\)为整体字符,包在它里面的所有字符可以作为一个整体,后面可以用\1代替,比如\(.*\)为所有字符串为一个整体;
.其中.代表匹配任意一个字符,代表匹配的数目为0到任意多个;
_此处代表一个空格,_*代表匹配任意多个空格,包括0个;
第二个/代表要替换成的字符开始字符;
\.同上;
\1匹配\(.*\)内的.*;
()代表匹配的括号;
,代表匹配逗号;
/g表示全局替换。
其中匹配字符串,带有下划线和数字的字符串,但不包括空格,可以用\w*就可以匹配,其中. 代表匹配任何的字符包括空格

过了很久在用上面的命令发现有问题,所以改为下面的命令

删除空行的命令:
:n1,n2g/^_*$/d,其中n1和n2为行数

你可能感兴趣的:(用vi进行verilog模块例化的技巧)