# Сворачивание (folding) в VIM Часто когда работаешь с большими файлами, особенно исходниками программ, тяжело окинуть быстрым взглядом все методы/функции т.к. их тело мешает обзору. В VIM есть удобная возможность _сворачивать текстовые блоки в одну линию_ (для кода – все тело метода сворачивается в заголовок метода). **VIM может сворачивать текстовые блоки по следующим правилам**: - ручное сворачивание по метке (описано в :help fold-manual) - сворачивание на основании отступов в начале строк (описано в :help fold-indent) - использование выражений для сворачивания (описано в :help fold-expr) - сворачивание на основании синтаксиса (описано в :help fold-syntax) - использование разницы – сворачивание не изменившегося текста (описано в :help fold-diff) - вставка в тексте маркеров для обозначения точки сворачивания (описано в :help fold-marker) Для начала использования необходимо **_активировать возможность сворачивания_ :set foldenable** Затем **_задать правило для сворачивания_**, например, **:set foldmethod=indent** (сворачивание на основании отступов в начале строк) ## Команды для создания свертки блоков **zf#j** - создает **свертку от текущей позиции до # строк вниз** **zf/подстрока** - создает свертку от текущей позиции и до первой найденной подстроки **v/V** и **zf** - выделение блока и создание свертки ## Команды для управления **zc** – свернуть блок **zo** – развернуть блок **zM** – закрыть все блоки **zR** – открыть все блоки **za** – инвертирование (если открыто – закрыть, если закрыто – открыть) **zj** - переход к следующей свертке **zk** - переход к предыдущей свертке **zd** - удалить свертку под курсором **zD** - удалить все свертки **[z** - перейти к началу текущей свертки **]z** - перейти к концу текущей свертки После закрытия vim все свертки забываться, **_для сохранения сверток_** в открытом файле используется команда **:mkview**, а **_для загрузки_** - **loadview**. [[0_content|Оглавление]]