Benim için ideal katlama sadece classve defbloklarını katlamaktır, girintili katlama zevkime göre çok fazladır. Sanırım zarif bir çözüm, Tomas'ın bahsettiği buna benzer bir sözdizimi sistemini kullanmak . Bununla birlikte, bunun orijinal sözdizimi dosyasının yerini alması amaçlanmıştır ve orijinalinden daha eski olabilir (yani bu komut dosyası Python 3 sözdiziminden bahsetmez).
Çözümüm, ~/.vim/syntaxklasöre python.vimyalnızca önemli satırlarla (yukarıdaki komut dosyasından alınmıştır) bir dosya yerleştirmek :
syn match pythonDefStatement /^\s*\%(def\|class\)/
\ nextgroup=pythonFunction skipwhite
syn region pythonFunctionFold start="^\z(\s*\)\%(def\|class\)\>"
\ end="\ze\%(\s*\n\)\+\%(\z1\s\)\@!." fold transparent
hi link pythonDefStatement Statement
Ardından katlamayı ile etkinleştirin :set foldmethod=syntax.