有没有办法调整vim中折叠线的格式?

时间:2012-09-29 11:05:35

标签: vim folding

现在我折叠的线条看起来像这样:

+-- 123 lines: doSomeStuff();--------------------------
+-- 345 lines: doSomeOtherStuff();---------------------

我想在行的实际内容之前删除所有内容(+ - xxx行:),使其更像Notepad ++ / Eclipse visuals方式 - 现在它太难读了,我实在不在乎怎么样在一定折叠下我有多少行:)那么有没有调整折叠线格式的命令?

2 个答案:

答案 0 :(得分:7)

是的,已经提到过romainl的foldtext函数会返回一个字符串,以便在一个封闭的折叠中显示(换句话说,就是你所看到的)。

您可以修改折叠功能以显示您感兴趣的内容。例如,

function! MyFoldText() " {{{
    let line = getline(v:foldstart)

    let nucolwidth = &fdc + &number * &numberwidth
    let windowwidth = winwidth(0) - nucolwidth - 3
    let foldedlinecount = v:foldend - v:foldstart

    " expand tabs into spaces
    let onetab = strpart('          ', 0, &tabstop)
    let line = substitute(line, '\t', onetab, 'g')

    let line = strpart(line, 0, windowwidth - 2 -len(foldedlinecount))
    let fillcharcount = windowwidth - len(line) - len(foldedlinecount)
    return line . '…' . repeat(" ",fillcharcount) . foldedlinecount . '…' . ' '
endfunction " }}}
set foldtext=MyFoldText()

将返回与此类似的内容

" Basic settings --------------------------------------------- {{{...              6 ...

意味着折叠中有6行(包括具有结束折叠标记的行)

答案 1 :(得分:2)

:help fold-foldtext包含您需要的所有信息。