Как изменить способ отображения vim свернутых / свернутых линий

1782
pambda

Как я могу изменить способ, которым vim отображает эти свернутые / свернутые строки? Я хотел бы, чтобы это показывало номера скрытых строк в хвосте строки, но не в голове. Я гуглил и искал vim wiki, но не нашел подсказок.

more pretty vim fold format

Стиль сгиба похож на правую сторону картинки.

5
Посмотрев на "`: help fold-foldtext` ", я не думаю, что то, что вы хотите, возможно без исправления кода ядра Vim. Heptite 9 лет назад 0

1 ответ на вопрос

8
romainl

Вы можете поиграть с методом, описанным в этом блоге :

function! NeatFoldText() let line = ' ' . substitute(getline(v:foldstart), '^\s*"\?\s*\|\s*"\?\s*{{' . '{\d*\s*', '', 'g') . ' ' let lines_count = v:foldend - v:foldstart + 1 let lines_count_text = '| ' . printf("%10s", lines_count . ' lines') . ' |' let foldchar = matchstr(&fillchars, 'fold:\zs.') let foldtextstart = strpart('+' . repeat(foldchar, v:foldlevel*2) . line, 0, (winwidth(0)*2)/3) let foldtextend = lines_count_text . repeat(foldchar, 8) let foldtextlength = strlen(substitute(foldtextstart . foldtextend, '.', 'x', 'g')) + &foldcolumn return foldtextstart . repeat(foldchar, winwidth(0)-foldtextlength) . foldtextend endfunction  set foldtext=NeatFoldText() 

Есть много, вариантов, на самом деле ; и есть даже vimcast на эту самую тему.