我正在尝试使用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;
如您所见,有时变量名称前会有方括号,但有时不会。评论可能在中间,我希望它们被忽略。我想在输入/输出前保留空格。 我尝试了一些正则表达式,但无法做到这一点。
答案 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
\ }
我不完全了解这种模式,因此我不会尝试解释它。 但这有效:)