Dans vim, je règle généralement foldmethod
à indent
la plupart des types de fichiers. En général, j'aime que les fichiers s'ouvrent avec tous les plis ouverts. Cependant, il est utile de commencer immédiatement à utiliser zmpour commencer à fermer les plis globalement à travers le fichier, un niveau à la fois, ce qui me permet de voir la structure globale du fichier sans que des détails ne gênent.
La seule solution générale que j'ai trouvée consiste à définir foldlevelstart
un nombre très élevé, par exemple 99, pour s'assurer que tous les fichiers (en gardant à l'esprit que différents fichiers auront différents niveaux de retrait maximum) commencent complètement dépliés. Cependant, je devrais ensuite utiliser à zmplusieurs reprises pour réduire foldlevel
le niveau de pliage maximum du fichier, normalement beaucoup moins que 99, ce qui est lourd et peu pratique. Je pouvais définir foldlevel
manuellement à l'aide de la ligne de commande vim, mais j'avais encore besoin de connaître le retrait maximal dans le fichier.
Existe-t-il un moyen pratique d'ouvrir un fichier dont la valeur foldlevel
est exactement égale à un de plus que le niveau de retrait / pli maximal actuel dans le fichier lui-même?
Par exemple, étant donné le fichier suivant:
a
b
c
d1
d2
e
f1
f2
La première pression sur zmafficherait ceci:
a
b
c
+-- 2 lines: d1------
e
+-- 2 lines: f1------
(Notez, cependant, que cela devrait fonctionner pour le cas général où le retrait maximal initial du fichier pourrait être n'importe quelle valeur).
la source
zr
aveczm
; ce dernier réduit le niveau de pliage.zm
= plier plus (soustraire le niveau de pli) etzr
= plier moins (ajouter le niveau de pli)Réponses:
Cela trouve le niveau de pliage le plus élevé dans le fichier actuel:
Pour définir cela automatiquement, vous pouvez utiliser un
:autocmd
:la source
foldlevelstart
n'a pas une telle option.foldlevel
est 0 etfoldlevelstart
-1 lorsque je lance un fichier avec ces paramètres.Au lieu d'utiliser
zr
, utilisezzR
, qui ouvrira tous les plis. De même,zM
fermera tous les plis.la source
zR
(définir le niveau de pliage au niveau le plus élevé), puiszm
fonctionnera. Ce n'est qu'une étape supplémentaire.L'option
set nofoldenable
vous permet de démarrer le fichier avec tous les plis ouvertsla source