Gvim高级操作006--verilog例化代码对齐

Gvim高级操作006--verilog例化代码对齐

Gvim如果没有安装对齐插件的情况下,无法通过快捷操作实现verilog例化代码对齐。

但是可以通过正则表达式匹配插入空格实现代码对齐

基本原理是

  1. 删除空格,点号”.“和信号之间不能有空格,左括号”(“紧贴信号名,右括号”)”与“,”间隔一致,这样才能保证代码后续对齐
  2. 匹配点号“.”与左括号“(”之间的字符数量,不足30则插入空格,补齐30个字符
  3. 匹配左括号“(”与右括号“)”之间的字符数量,不足30则插入空格,补齐30个字符

1、规范编写 .signal_name  (signal_name    ),

,删除空格,规范编写,使得代码具有一定规律,点号”.“和信号之间不能有空格,左括号”(“紧贴信号名,右括号”)”与“,”间隔一致,这样才能保证代码后续对齐

.,+10  s/\s*\(\.\w*\)\s*(\s*\(\w*\)\s*)\s*,/\1(\2),/gc

2、对齐左括号“(”

匹配点号“.”与左括号“(”之间的字符数量,不足30则插入空格,补齐30个字符

光标放在.clk行:按ESC,按shift+; ,输入命令

当前行以下的10行进行替换操作,\zs表示从当前位置开始替换\ze表示从当前位置结束替换

.,+10 s/^\(.*\.\w*\s*\)\zs\ze(/\=repeat(' ',30-strlen(submatch(1)))/gc

2、对齐右括号“)”

匹配左括号“(”与右括号“)”之间的字符数量,不足30则插入空格,补齐30个字符

光标放在.clk行:按ESC,按shift+; ,输入命令

.,+10 s/\((\s*\w*\s*\)\zs/\=repeat(' ',30-strlen(submatch(1)))/gc

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值