Vim: сложить только верхний уровень - PullRequest
31 голосов
/ 22 февраля 2011

У меня есть длинный кодовый файл со свертыванием синтаксиса в Vim.

Я знаю, как открыть все сгибы (zR) или закрыть все сгибы (zM), и я знаю, как увеличить или уменьшить уровень сгиба (zm, zr).

Однако, когда я увеличиваю уровень сгиба, большинство внутренних сгибов закрываются; вместо этого я хочу, чтобы самые внешние складки были закрыты, а внутренняя - больше. Это можно сделать вручную, открыв все сгибы и закрыв каждый сгиб верхнего уровня вручную, что невероятно утомительно, особенно с длинными файлами, которые я открываю быстро, чтобы получить обзор кода.

Есть ли комбинация клавиш для этого? Или мне нужно сделать какую-то функцию Vim, чтобы сделать это? И если да, то как?

Ответы [ 3 ]

33 голосов
/ 22 февраля 2011

Я думаю, вы хотите добавить set foldnestmax=1 к вашему $MYVIMRC.

19 голосов
/ 20 апреля 2011

Да, вы можете ввести

:%foldc

, который закрывает один уровень складок (снаружи внутрь).

6 голосов
/ 22 февраля 2011

Как говорит Карл, настройка foldnestmax, вероятно, то, что вы хотите.

zO (т.е. заглавная буква o) открывает все вложенные сгибы.

Я также считаю zx и zv очень полезными.

Когда я использую foldmethod=expr с пользовательским выражением сгиба, я часто изменяю выражение так, чтобы оно складывало только то, что я хочу, чтобы оно складывалось.

...