【问题标题】:How to change the way that vim display those collapsed/folded lines [duplicate]如何更改vim显示那些折叠/折叠行的方式[重复]
【发布时间】:2015-10-22 12:35:11
【问题描述】:

让 vim-collapse/fold 更漂亮

如何更改 vim 显示折叠/折叠行的方式(在行尾显示隐藏行号,但不在行首显示)。我用谷歌搜索并找到了 vim wiki,但没有找到任何提示。

请看图【更漂亮的vim折叠格式】

折叠样式就像图片的右手边。

【问题讨论】:

    标签: vim editor collapse code-folding


    【解决方案1】:

    你可以设置你的函数来设置折叠文本

    试试这样的:

    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

    【讨论】:

    • 我更新了我的代码以右对齐折叠的长度。请注意,不显示折叠级别。你可以使用类似 `let foldLevelStr = repeat(">", v:foldlevel)`
    • 非常感谢,它有效!一旦我有足够的学分,我会支持你的答案。我仍然对它为什么&&如何工作感到好奇。再次感谢。
    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 2013-01-16
    • 2012-06-13
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多