Я думаю, что вы должны определить свою собственную функцию свертывания, чтобы у вас был больший контроль над тем, что сворачивается, когда. Следующая функция сгиба нечувствительна к сгибу function
/ end function
регистру и должна быть довольно легко настраиваемой для дальнейших требований:
function! InformixFold() let line = getline(v:lnum) let prev_line = getline(v:lnum-1) if match(line, '^\s*function\s*$') >= 0 return 1 elseif match(prev_line, '^\s*end\s*function\s*$') >= 0 return 0 else return "=" endfunction
Затем установите foldmethod
на expr
и foldexpr
функции:
set foldmethod=expr set foldexpr=InformixFold()
Смотрите help fold-expr
больше.
"Скриншот":
- FUNCTION | FOR ... | ... | END FOR | END FUNCTION + +-- 5 lines: FUNCTION------------------------------------------------------