3

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

你知道如何改变它吗?

说明图片

4

2 回答 2

7

如果您希望折叠文本与折叠的第一行在同一级别缩进,您需要在折叠文本之前添加缩进级别:

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

这里我假设字符串txt是你现有的折叠文本,所以你需要做的就是将它添加到indent.

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

编辑:

现在我看到了你的照片,我不确定这是否是你想要的。您可以尝试在附加到+. 因此,您想要的 foldtext 将类似于indent . '+' . txt.

也许。

于 2011-05-13T13:36:45.590 回答
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 ......

于 2011-05-13T13:28:06.587 回答