Я всегда использовал forldmethod = marker и определял свои собственные теги свертывания, размещенные в комментариях.
это для определения символов, которые определяют открытые и закрытые сгибы. в этом случае open - это "<(", а close - ")>", замените их на то, что вы хотите.
set foldmethod=marker
set foldmarker=<(,)>
Это моя пользовательская функция, чтобы решить, что отображать сложенный текст:
set foldtext=GetCustomFoldText()
function GetCustomFoldText()
let preline = substitute(getline(v:foldstart),'<(','<(+)','')
let line = substitute(preline,"\t",' ','g')
let nextLnNum = v:foldstart + 1
let nextline = getline(nextLnNum)
let foldTtl = v:foldend - v:foldstart
return line . ' | ' . nextline . ' (' . foldTtl . ' lines)>'
endfunction
Надеюсь, это поможет.