Sprechen wir von relativen Maßen. Mein Vim sieht aus wie:
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
etc
Ich möchte, dass es kleiner ist:
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc
Wie kann ich es bekommen? Und wie kann ich die Länge eines solchen Blocks festlegen?
vim
indentation
Léo Léopold Hertz 준영
quelle
quelle
Antworten:
Sie können tatsächlich zwei Dinge tun:
Welches möchtest du haben?
Option 1 würde durch Einstellen erreicht
textwidth
(zum Beispiel:set textwidth=30
(aus Swaarops Antwort)). Anschließend können Sie Ihren Text neu formatieren, indem Sie ihn markieren (im visuellen Modus) und eingebengq
. (textwidth
kann daher als abgekürzttw
werden:set tw=30
.)Option 2 kann durch Ausführen von
:set wrap
/ umgeschaltet werden:set nowrap
. Dadurch werden Zeilen umbrochen, die für das Fenster zu lang sind.Beide sind unabhängig.
quelle
fold
berücksichtigen , verwenden Sie den Befehl wie in der Antwort von fgm.wrap
wird an der Fenstergrenze gewickelt, nicht antextwidth
.Sobald Sie 'Textbreite' eingestellt haben, können Sie Text im visuellen Modus auswählen und gq drücken, um ihn schön zu verpacken (Sie können Q auch bei einigen älteren / älteren Konfigurationen verwenden).
Einige nützliche Tipps:
quelle
gqq
umschließt auch die aktuelle Zeile (anstelle vongqgq
odergq$
).Die Verwendung von Falte (1) ist eine Möglichkeit:
Ergebnis:
quelle
quelle
textwidth
behandelt keine Situation ohne Leerzeichen. Sie können dazu Ihre eigeneformatexpr
Funktion schreiben .Wenn Sie Text ohne Leerzeichen haben, den Sie in einer bestimmten Länge unterbrechen möchten, müssen Sie weder extern verwenden
fold
noch Ihren eigenen schreibenformatexpr
.:%s/\(.\{80\}\)/\1\r/g
bricht alle Zeilen bei 80 Zeichen.
quelle