在写RTL时经常会使用到对齐操作, 发现GVIM的插件 vim-easy-algin非常好用
插件获取:
GitHub - junegunn/vim-easy-align: :sunflower: A Vim alignment plugin
插件中会使用到VIM Regular(正则表达式), 参考链接:
自己在使用过中发现, verilog中常用的端口对齐, 例化名对齐, 声明对齐, 都需要自己手写正则表达式. 所以总结了以下几个正则表达式:
将下面的代码拷贝到.vimrc中, 需要事先安装好'vim-easy-align'插件
"""""""""""""""""" EasyAlign Config""""""""""""""""""""""""""""""""""""""
" Start interactive EasyAlign in visual mode (e.g. vipga)
xmap ga <Plug>(EasyAlign)
" 端口对齐 Align input & output
"xmap aa :EasyAlign /input\\|output/<CR> :'<,'>EasyAlign /[/<CR>:'<,'>EasyAlign /:/ <CR>:'<,'>EasyAlign /]/ <CR>:'<,'>EasyAlign /\ \S\+,/ <CR>
xmap aa :EasyAlign /input\\|output/<CR> :'<,'>EasyAlign /[/<CR>:'<,'>EasyAlign /:/ <CR>:'<,'>EasyAlign /]/ <CR>:'<,'>EasyAlign /\s\+\L*/{'s':0,'l':1}<CR>:'<,'>EasyAlign /,/<CR>
" 例化名对齐 Align instance
xmap ab :EasyAlign /./r0<CR>:'<,'>EasyAlign /(/<CR>:'<,'>EasyAlign /[/<CR>:'<,'>EasyAlign /:/<CR>:'<,'>EasyAlign /]/<CR>:'<,'>EasyAlign /)/<CR>:'<,'>EasyAlign /,/<CR>
" 声明对齐 Align declare wire & reg
xmap ad :EasyAlign /wire\\|reg/<CR>:'<,'>EasyAlign /[/<CR>:'<,'>EasyAlign /:/ <CR>:'<,'>EasyAlign /]/ <CR> :'<,'>EasyAlign /\s\+\L*/{'s':0,'l':1}<CR>:'<,'>EasyAlign /;/ <CR>
For example:
端口对齐:VISUAL模式下选择对齐区域, 然后输入'aa'
执行指令前:
执行指令后:
例化名对齐: VISUAL模式下选择对齐区域, 然后输入'ab'
执行指令前:
执行指令后:
声明对齐: VISUAL模式下选择对齐区域, 然后输入'ad'
执行指令前:
执行指令后: