Hi,
With this kind of syntax:
FUNCTION
NETWORK
foobar
barfo
foo
bar
NETWORK
foobar
barfo
foo
bar
NETWORK
foobar
barfo
foo
bar
END_FUNCTION
" folding
setlocal foldmethod=expr
setlocal foldexpr=GetFold(v:lnum)
function! GetFold(lnum)
let currentLine = getline(a:lnum)
let nextLine = getline(a:lnum+1)
if (currentLine =~? '\v^NETWORK') || (currentLine =~? '\v^FUNC')
return '>1'
endif
if (nextLine =~? '\v^NETWORK') || (nextLine =~? '\v^END_FUNC')
return '<1'
endif
return '1'
endfunction
参考 参考一