当您展开代码的嵌套级别时,嵌套代码中的折叠文本不会缩进。它从行首开始,+
而不是缩进开始。
你知道如何改变它吗?
如果您希望折叠文本与折叠的第一行在同一级别缩进,您需要在折叠文本之前添加缩进级别:
function! MyFoldText()
let indent_level = indent(v:foldstart)
let indent = repeat(' ',indent_level)
...
...
return indent . txt
endfunction
这里我假设字符串txt
是你现有的折叠文本,所以你需要做的就是将它添加到indent
.
但我不确定这是否是您想要实现的目标。
编辑:
现在我看到了你的照片,我不确定这是否是你想要的。您可以尝试在附加到+
. 因此,您想要的 foldtext 将类似于indent . '+' . txt
.
也许。
啊哈
你可能想在你的 .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 ......