vim使用Align或Tabularize(Verilog)对齐列

时间:2018-11-13 10:06:49

标签: vim alignment verilog

我正在尝试使用Align或Tabularize来获取以下代码:

   // UDW
   input  [UDW_WIDTH-1:0]     udw_data;
   input [TYPE_WIDTH-1:0]     udw_type;
   input                      udw_valid;
   output                     udw_ready;
   // UniClkPktGen
   input [UTW_DATA_W-1:0]     utw_data_in;
   input                      utw_valid_in;
   input [FREQOFFSET_W-1:0]   freqOffset;
   input [ACCDELAY_W-1:0]     accDelay;
   // RIF                     
   input [31:0]                    rif_add_bus;
   input [31:0]                    rif_data_wr;
   input [3:0]                  rif_byte_en;
   input                         rif_wr;
   input                         rif_rd;
   output [31:0]                   rif_data_rd;
   output                        rif_ack;

要与此对齐:

   // UDW
   input  [UDW_WIDTH-1:0]     udw_data;
   input  [TYPE_WIDTH-1:0]    udw_type;
   input                      udw_valid;
   output                     udw_ready;
   // UniClkPktGen
   input  [UTW_DATA_W-1:0]    utw_data_in;
   input                      utw_valid_in;
   input  [FREQOFFSET_W-1:0]  freqOffset;
   input  [ACCDELAY_W-1:0]    accDelay;
   // RIF                     
   input  [31:0]              rif_add_bus;
   input  [31:0]              rif_data_wr;
   input  [3:0]               rif_byte_en;
   input                      rif_wr;
   input                      rif_rd;
   output [31:0]              rif_data_rd;
   output                     rif_ack;

如您所见,有时变量名称前会有方括号,但有时不会。评论可能在中间,我希望它们被忽略。我想在输入/输出前保留空格。 我尝试了一些正则表达式,但无法做到这一点。

1 个答案:

答案 0 :(得分:1)

好吧,我已经设法轻松对齐了(感谢Doktor OSwaldo)。 我使用了高级示例: https://github.com/junegunn/vim-easy-align/blob/master/EXAMPLES.md

我接受了这段代码,并将其添加到〜/ .vim / autoload / easy_align.vim(摘自上面的EXAMPLES.md)。

let g:easy_align_delimiters['d'] = {
\ 'pattern': ' \ze\S\+\s*[;=]',
\ 'left_margin': 0, 'right_margin': 0
\ }

我不完全了解这种模式,因此我不会尝试解释它。 但这有效:)