No vim, geralmente defino foldmethod
para indent
a maioria dos tipos de arquivo. Em geral, gosto de abrir arquivos com todas as dobras abertas. No entanto, é útil começar a usar imediatamente zmpara começar a fechar dobras globalmente no arquivo, um nível de cada vez, permitindo-me ver a estrutura geral do arquivo sem que os detalhes atrapalhem.
A única solução geral que encontrei é definir foldlevelstart
um número muito alto, por exemplo, 99, para garantir que todos os arquivos (tendo em mente que arquivos diferentes terão níveis diferentes de recuo máximo) sejam desdobrados completamente. No entanto, eu teria que usar zmrepetidamente para reduzir foldlevel
ao nível máximo de dobra do arquivo, normalmente muito menor que 99, o que é complicado e impraticável. Eu poderia definir foldlevel
manualmente usando a linha de comando vim, mas ainda precisaria saber o recuo máximo no arquivo.
Existe uma maneira prática de abrir um arquivo com o foldlevel
conjunto exatamente um a mais que o nível máximo de avanço / dobra atual no próprio arquivo?
Por exemplo, dado o seguinte arquivo:
a
b
c
d1
d2
e
f1
f2
O primeiro pressionamento de tecla zmmostraria isso:
a
b
c
+-- 2 lines: d1------
e
+-- 2 lines: f1------
(Observe, no entanto, que ele deve funcionar no caso geral em que o recuo máximo inicial do arquivo pode ter qualquer valor).
zm
= vezes mais (foldlevel subtrair) e zr
= vezes menos (foldlevel add)
zr
comzm
; o último reduz o nível de dobra.