使标志只使用一个字符宽度?

时间:2013-06-12 03:22:55

标签: vim

Sign指的是左侧的额外列,当使用例如合成插件。 如果可能的话,我想节省空间,只占用一列空间。我可以从>更改用于>>的符号,但它仍然是两个字符宽!

2 个答案:

答案 0 :(得分:13)

遗憾的是,无法修改符号列的宽度。它在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宽度也是固定的,但在源中的其他位置定义。

答案 1 :(得分:0)

适用于任何使用 set number 的人的解决方法。

set signcolumn=number 将在数字列上绘制符号:

enter image description here