vim使用align或表格(Verilog)对齐列
我尝试使用Align或Tabularize获取以下代码:vim使用align或表格(Verilog)对齐列,vim,alignment,verilog,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]
// 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;
如您所见,有时变量名前会有方括号,有时则不会。评论可能是在中间,我希望他们被忽略。我想在输入/输出之前保留空格。
我尝试了一些正则表达式,但没能做到。好的,我已经用easy align做到了(谢谢Doktor OSwaldo)。 我使用了一些高级示例: 我将这段代码添加到~/.vim/autoload/easy_align.vim(取自上面的EXAMPLES.md) 我不完全理解这个模式,所以我不会试图解释它。
但是它是有效的:)如果你可以选择其他插件,那么你总是可以使用
visualblock
来移动文本。我将尝试使用easy align。使用VisualBlock不是自动的(这就是我目前正在做的),我正在尝试找到一种快速的方法。我正在处理的所有文件中都有很多这样的行。完全平凡。模式与模式(\ze
)前面的最后一个空格相匹配\S\+\S*[;=]”
至少匹配一个非空白字符序列(\S\+
),后跟可选空白(\S*
),然后再跟一个代码>或=
([;=]
)。有关更多帮助,请参见:h/\ze
,:h/\+
,:h/\S
,/\S
和:h/collection
。
let g:easy_align_delimiters['d'] = {
\ 'pattern': ' \ze\S\+\s*[;=]',
\ 'left_margin': 0, 'right_margin': 0
\ }