В Vim, я обычно устанавливается foldmethodв indentбольшинстве типов файлов. В общем, мне нравятся файлы, которые открываются со всеми открытыми сгибами. Тем не менее, полезно начать немедленно, используя, zmчтобы начать закрывать сгибы глобально по файлу, по одному уровню за раз, что позволяет мне видеть общую структуру файла, не мешая деталям.
Единственное общее решение, которое я нашел, - это установить foldlevelstartочень большое число, например 99, чтобы убедиться, что все файлы (с учетом того, что разные файлы будут иметь разные уровни максимального отступа) начинаются полностью развернутыми. Тем не менее, мне пришлось бы использовать zmнесколько раз, чтобы уменьшить foldlevelмаксимальный уровень сгиба файла, обычно намного меньше 99, что является громоздким и непрактичным. Я мог бы установить foldlevelвручную, используя командную строку vim, но мне все равно нужно знать максимальный отступ в файле.
Есть ли практический способ открыть файл с foldlevelустановленным ровно на один больше, чем максимальный текущий уровень отступа / сгиба в самом файле?
Например, предоставлен следующий файл:
a
b
c
d1
d2
e
f1
f2
Первое нажатие клавиши zmпокажет это:
a
b
c
+-- 2 lines: d1------
e
+-- 2 lines: f1------
(Обратите внимание, однако, что он должен работать для общего случая, когда начальный максимальный отступ файла может быть любым значением).
zm= сбросить больше (вычесть уровень сгиба) и zr= сбросить меньше (добавить уровень сложения)
zrсzm; последний уменьшает уровень сгиба.