In vim, ich in der Regel eingestellt , foldmethod
um indent
für die meisten Dateitypen. Im Allgemeinen möchte ich, dass Dateien mit allen geöffneten Falten geöffnet werden. Es ist jedoch nützlich, sofort damit zmzu beginnen, Falten global über die Datei hinweg zu schließen, sodass ich die Gesamtstruktur der Datei sehen kann, ohne dass Details im Weg stehen.
Die einzige allgemeine Lösung, die ich gefunden habe, besteht darin foldlevelstart
, eine sehr hohe Zahl festzulegen, z. B. 99, um sicherzustellen, dass alle Dateien (unter Berücksichtigung unterschiedlicher Dateien mit unterschiedlichem maximalem Einzug) vollständig entfaltet beginnen. Allerdings müsste ich dann zmwiederholt verwenden, um foldlevel
die maximale Falzstufe der Datei zu reduzieren , normalerweise viel weniger als 99, was umständlich und unpraktisch ist. Ich könnte foldlevel
manuell über die vim-Befehlszeile einstellen , aber ich müsste immer noch den maximalen Einzug in der Datei kennen.
Gibt es eine praktische Möglichkeit, eine Datei zu öffnen, deren foldlevel
Einstellung genau eins höher ist als die maximale aktuelle Einrückungs- / Faltebene in der Datei selbst?
Zum Beispiel bei folgender Datei:
a
b
c
d1
d2
e
f1
f2
Der erste Tastendruck von zmwürde dies zeigen:
a
b
c
+-- 2 lines: d1------
e
+-- 2 lines: f1------
(Beachten Sie jedoch, dass dies für den allgemeinen Fall funktionieren sollte, in dem der anfängliche maximale Einzug der Datei ein beliebiger Wert sein kann.)
quelle
zr
mitzm
; Letzteres reduziert das Faltniveau.zm
= mehr falten (Foldlevel subtrahieren) undzr
= weniger falten (Foldlevel hinzufügen)Antworten:
Dies findet die höchste Faltstufe in der aktuellen Datei:
Um dies automatisch einzustellen, können Sie Folgendes verwenden
:autocmd
:quelle
foldlevelstart
hat so eine Option nicht.foldlevel
ist 0 undfoldlevelstart
-1, wenn ich eine Datei mit diesen Einstellungen starte.Anstatt zu verwenden
zr
, verwenden SiezR
, wodurch alle Falten geöffnet werden. EbensozM
werden alle Falten geschlossen.quelle
zR
(Foldlevel auf die höchste Stufe einstellen) und dannzm
wird es funktionieren. Es ist nur ein zusätzlicher Schritt.Mit dieser Option
set nofoldenable
können Sie die Datei mit allen geöffneten Falten startenquelle