当您展开代码的嵌套级别时,嵌套代码中的折叠文本不会缩进。它从+
开始,而不是开始缩进。
你知道怎么改吗?
答案 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 ...