缩进折叠文本

时间:2011-05-13 13:09:51

标签: vim folding

当您展开代码的嵌套级别时,嵌套代码中的折叠文本不会缩进。它从+开始,而不是开始缩进。

你知道怎么改吗?

illustrating picture

2 个答案:

答案 0 :(得分:6)

如果您希望折叠文本缩进到与折叠的第一行相同的级别,则需要将缩进级别添加到foldtext:

function! MyFoldText()
    let indent_level = indent(v:foldstart)
    let indent = repeat(' ',indent_level)
    ...
    ...   
    return indent . txt
endfunction

这里我假设字符串txt是您现有的foldtext,所以您需要做的就是将其添加到indent的末尾。

但我不确定这是否是你想要实现的目标。

修改

现在我已经看过你的照片,我不确定这是不是你想要的。你可以尝试剥离前导空格,然后再附加到+。所以你想要的foldtext就像indent . '+' . txt

可能。

答案 1 :(得分:1)

阿哈

您可能希望在.vimrc中注释掉此功能:

set foldtext=MyFoldText()
set fillchars=fold:_

通过使用以下函数,这就是使折叠文本显示为非默认值的原因:

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

碰巧的是,我非常喜欢这个功能,但当然是de gustibus ...