Подтвердить что ты не робот

Vim: только складки верхнего уровня

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

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

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

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

4b9b3361

Ответ 1

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

:%foldc

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

Ответ 2

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

Ответ 3

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

zO (т.е. capital-letter-o) открывает все вложенные складки.

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

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