Для меня идеальное сворачивание состоит в том, чтобы сложить только блоки class
и def
, складывание отступов - слишком много, на мой вкус. Я думаю, что одно изящное решение - использовать синтаксическую систему, подобную этой one , упомянутой Томасом. Однако этот файл предназначен для замены исходного файла синтаксиса, и он может перестать быть старше исходного (т. Е. В этом сценарии не упоминается синтаксис 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
.