如何更改 vim 显示那些 collapsed/folded 行的方式

How to change the way that vim display those collapsed/folded lines

让vim-collapse/fold更漂亮

如何更改 vim 显示那些 collapsed/folded 行的方式(在行尾而不是行头显示隐藏的行号)。我用谷歌搜索并找到了 vim wiki,但没有找到任何提示。

请看图[更漂亮vim折叠格式]

折叠方式如右图

您可以设置您的功能来设置折叠文本

尝试这样的事情:

function! MyFoldText()
    let nblines = v:foldend - v:foldstart + 1
    let w = winwidth(0) - &foldcolumn - (&number ? 8 : 0)
    let line = getline(v:foldstart)
    let comment = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
    let expansionString = repeat(".", w - strwidth(nblines.comment.'"'))
    let txt = '"' . comment . expansionString . nblines
    return txt
endfunction
set foldtext=MyFoldText()

v:foldend 折叠中最后一行的行号

v:foldstart 折叠首行的行号

nblines 通过 diff 计算并加 1

然后注释被提取删除标记,应该使用语法的注释符号和所选的折叠标记进行改进。

expansionString是根据winwidth计算的

您可以在此处找到文档: http://vimdoc.sourceforge.net/htmldoc/fold.html#fold-foldtext