Для мене ідеальний складаний скласти тільки ті class
і def
блоки, відступу складання занадто багато , на мій смак. Я думаю , що один елегантне рішення полягає у використанні системи синтаксису , як цей один згадує Томас. Однак цей призначений для заміни оригінального файлу синтаксису, і він може закінчитися старшим за оригінал (тобто цей сценарій не згадує синтаксис Python 3).
Моє рішення полягає в тому, щоб помістити в ~/.vim/syntax
папку файл, названий python.vim
лише важливими рядками (взяті з вищевказаного сценарію):
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
Потім просто активуйте складку за допомогою :set foldmethod=syntax
.