遗憾的是,无法修改符号列的宽度.它在Vim中被硬编码为两个字符宽.
它在screen.c中的Vim源中定义(vim-73中的第2149行):
# ifdef FEAT_SIGNS if (draw_signcolumn(wp)) { int nn = n + 2; /* draw the sign column left of the fold column */ if (nn > W_WIDTH(wp)) nn = W_WIDTH(wp); screen_fill(W_WINROW(wp) + row,W_WINROW(wp) + endrow,W_ENDCOL(wp) - nn,(int)W_ENDCOL(wp) - n,' ',hl_attr(HLF_SC)); n = nn; } # endif
int nn = n 2行是罪魁祸首.您可以尝试在源代码中破解它,但我不知道布局的其余部分是否取决于宽度为2.请注意,这是针对非GUI实现的; GUI宽度也是固定的,但在源中的其他位置定义.