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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐