python 用 FoldMethod
runtime/ftplugin/python.vim にはっ付ける

-- ここから
function! FoldLevel(lnum)
 let line = getline(a:lnum)
 let re  = '^\(\s*\)\(\S*\).*'
 let sps  = substitute(line, re, '\1', '')
 let mrk  = substitute(line, re, '\2', '')
 let lvl  = strlen(sps)/4
 if mrk==#'class' || mrk==#'def' || mrk==#'for' || mrk==#'while' ||
   mrk==#'if' || mrk==#'else' || mrk==#'elif' || mrk==#'try' || mrk==#'except' || mrk==#'finally'
  return '>' . (lvl+1)
 elseif !strlen(line)
  return '='
 else
  return lvl
 endif
endfunction

execute 'setlocal foldexpr=FoldLevel(v:lnum)'
setlocal foldmethod=expr
--ここまで

書き込みエラーがでたので if 文のところで改行してます。