2013-06-12 8 views
5

Znak odnosi się do dodatkowej kolumny po lewej stronie, która jest dodawana podczas używania np. wtyczka syntaktyczna. Chciałbym zaoszczędzić w kosmosie, jeśli to tylko możliwe, zabierając tylko jedną kolumnę przestrzeni. Mogę zmienić znak używany do > z >>, ale nadal jest szeroki na dwa znaki!Czy znak ma tylko jedną szerokość znaku?

Odpowiedz

11

Niestety nie ma możliwości zmiany szerokości kolumny znaku. W Vimie jest on zakodowany na dwóch znakach.

jest zdefiniowana w źródle vim w screen.c (linia 2149 w vim-73):

# 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 

Linia int nn = n + 2 jest sprawcą. Możesz spróbować zhakować go w źródle, ale nie wiem, czy reszta układu zależy od szerokości 2. Pamiętaj, że jest to dla implementacji nie-GUI; szerokość GUI jest również ustalona, ​​ale zdefiniowana w innym miejscu źródła.

+1

Schludnie !! Dzięki za dogłębne zbadanie. Mogę wprowadzić tę modyfikację następnym razem, gdy kompiluję Vima :) –

+0

Wygląda jak kandydat do funkcji NeoVim. – firedev

Powiązane problemy