更改折叠中的文本

xra*_*alf 7 vim folding

我注意到折叠文本可以显示有用的信息.他们通常表现出类似的东西

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

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

谢谢

Pri*_*ash 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()
Run Code Online (Sandbox Code Playgroud)

说明:

  1. 找到折叠包含的行数.
  2. 从第一条折叠线前的线上获取"注释"(并删除前导空格).
  3. 从折叠的第一行获取文本(并删除前导空格).
  4. 使用适当的格式将上述信息组合到返回的foldtext中.

希望这可以帮助.它应该很容易根据您的需求量身定制.