Установить уровень сгиба в части файла в vim
Параметр
foldlevel
когда сгибание активно, отображаются все сгибы до этого уровня и закрываются остальные. * Я хотел бы сделать что-то подобное только для части файла, возможно, для всего материала ниже текущего сгиба или для всего материала в диапазоне.
Рассмотрим этот файл:
Tippy Top
chapter
section
subsection
chapter 2
section 2.1
sub 2.1.1
где ведущее пустое пространство - это вкладки и
:setlocal foldmethod=indent
действует.
я хотел бы пойти в
Tippy Top
и сделать что-то вроде
:expandToLevel 1
и см. только заголовки 2 глав.
я могу использовать
zC
закрыть все, но
zo
просто восстанавливает предыдущее представление с заголовками более низкого уровня, такими как
subsection
расширены, если они были расширены ранее.
я пытался использовать
:foldclose
, подсчет повторений, выделение визуальной области,
za
,
foldnestmax
, но ни один из них не достигает желаемого поведения.
Пока что, чтобы получить расширение только до определенного уровня, я использую один из двух способов:
- Использовать
:set foldlevel
чтобы получить то, что я хочу в моей текущей области, тем самым удалив все пользовательские складки, которые я сделал в другом месте. - Вручную закройте складки, которые я хочу закрыть, например,
zc
на и .
Первый теряет то, что я сделал в остальной части документа, а второй медленный и утомительный, когда записей больше, чем несколько.
я замечаю, что
C
функция foldUpdateIEMS() и связанные с ней функции занимают ряд строк. Я не уверен, что делает эта функция, но похоже, что что-то подобное недоступно сценариям vim.
Обновление от 25 апреля: запуск vim в отладчике и установка точки останова
foldUpdateIEMS()
. Он срабатывал при загрузке файла, но не когда я
:set foldlevel=2
. Таким образом, он не принимает непосредственного участия в открытии и закрытии складок. Кажется, он определяет складки.
Мой интерес к этим функциям исходит из
vimoutliner
, который использует
foldmethod=expr
. Но я упростил его до простого текстового файла с отступом табуляции, чтобы сосредоточиться на основных вопросах.
* В качестве побочного вопроса, когда я устанавливаю
foldlevel=1
с тестовым файлом выше я вижу только
chapter
, нет
chapter 2
. Я не знаю почему.