8

我注意到折叠文本可以显示有用的信息。他们通常会显示类似

+-- 5 lines: <div id="header-inner">--------------------------------------------

是否可以更改这些行中的文本?我注意到有些东西是可能的,foldexpr但有可能完全重新设计折叠吗?
例如
+ <div id="header-inner"> : "possible comment from line above" : row 27 : length 5

谢谢你

4

2 回答 2

13

从您的问题中我不明白一些事情,例如您正在使用哪种 foldmethod,或者“行”的数量是指什么,但这里有一个自定义 foldtext 函数,它应该可以大致完成您想要的操作:

function! MyFoldText()
    let nl = v:foldend - v:foldstart + 1
    let comment = substitute(getline(v:foldstart),"^ *","",1)
    let linetext = substitute(getline(v:foldstart+1),"^ *","",1)
    let txt = '+ ' . linetext . ' : "' . comment . '" : length ' . nl
    return txt
endfunction
set foldtext=MyFoldText()

解释:

  1. 查找折叠所包含的行数。
  2. 从第一个折叠行之前的行中获取“注释”(并删除前导空格)。
  3. 从折叠的第一行获取文本(并删除前导空格)。
  4. 使用适当的格式将上述信息组装到返回的折叠文本中。

希望这可以帮助。它应该很容易根据您的需求进行定制。

于 2011-05-12T20:34:46.710 回答
2

您还可以从Steve Losh 的有关 vim 的 bitbucket 存储库页面检查折叠配置。

它的外观非常漂亮,也非常有条理!

要查看它是什么样的,您可以在这个youtube 视频中查看它。

于 2017-03-14T06:37:44.090 回答