3

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

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

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

4

2 回答 2

8

是的,foldtextromainl 已经提到的函数返回一个要在闭合折叠中显示的字符串(换句话说,就是你所看到的)。

您可以修改 fold 功能以显示您觉得有趣的任何内容。例如,

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 行(包括带有关闭折叠标记的行)

于 2012-09-29T14:49:54.417 回答
2

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

于 2012-09-29T12:10:12.670 回答