Вставьте следующее в end вашего файла ~ / .vimrc:
fu! MyFoldSettings()
set foldmethod=expr
set foldexpression=MyFoldLevel(v:lnum)
set foldenable
set foldminlines=1
endf
fu! MyFoldLevel(lev)
let mytext = getline(a:lev)
let result="="
if mytext =~ '^=item'
let result=">3"
elsei mytext =~ '^=back'
let result="<2"
elsei mytext =~ '^=over'
let result=">2"
elsei mytext =~ '^=cut'
let result="<1"
elsei mytext =~ '^=\w\+'
let result='>1'
en
return result
endf
augroup MyFoldSettings_AutoCommands
au!
au BufReadPost {*.pl,*.pod,*.pm} MyFoldSettings()
augroup END
Это должно работать в большинстве случаев - это просто быстрый и грязный пример, но вы можете добавить и его, если вам нужно больше функциональности. Также, чтобы убедиться, что это включено, вы можете добавить моделину:
# vim:fen:fdo=hor:fcl=all:fdm=expr:fde=MyFoldLevel(v:lnum):fml=1
Если в этот момент вы не видите свернутый текст, попробуйте установить значения «foldopen = hor» и «foldclose = all», которые облегчат навигацию в / из складок. Кроме того, если вам нужно применить это к другим файлам или типам файлов, вы можете настроить au (автокоманду) соответственно. Приветствия.