更改折叠中的文本

时间:2011-05-12 19:27:30

标签: vim folding

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

的内容

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

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

谢谢

2 个答案:

答案 0 :(得分:11)

我从你的问题中有一些我不理解的东西,比如你正在使用哪种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. 将上述信息汇总到返回的foldtext中,并进行适当的格式化。
  5. 希望这会有所帮助。它应该很容易根据您的需求量身定制。

答案 1 :(得分:1)

您还可以从Steve Losh’s bitbucket repo page about vim检查折叠配置。

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

要查看它是什么样的,你可以在youtuebe video中找到它。