Welchen Befehl kann ich ausführen, um Leerzeilen in Vim zu entfernen?
674
:g/^$/d
:g
führt einen Befehl in Zeilen aus, die einem regulären Ausdruck entsprechen. Der reguläre Ausdruck ist 'Leerzeile' und der Befehl lautet :d
(Löschen)
:%!cat -s
kann die Wahl sein ..Fand es, es ist:
Quelle: Kraft von g bei vim wikia
quelle
oder
oder
quelle
Das Folgende kann verwendet werden, um nur mehrere Leerzeilen zu entfernen (sie auf eine einzelne Leerzeile zu reduzieren) und einzelne Leerzeilen intakt zu lassen:
quelle
\_$
bedeutet das Zeilenende , das innerhalb eines Musters verwendet werden$
kann ( kann nur am Ende des Musters verwendet werden). Gleiches gilt\_^
für den Zeilenanfang und kann überall innerhalb des Musters verwendet werden. Das Muster entspricht also einer leeren Zeile, einer neuen Zeile und erneut einer leeren Zeile. Siehe Vim Regex-Hilfeseite .:g/^$/,/./-j
wie man alle Leerzeilen entfernt
(Tun Sie dies mehrmals, wenn alle leeren Zeilen verschwunden sind.)
So entfernen Sie alle Leerzeilen, wobei die EINZELNE leere Zeile übrig bleibt
(mehrmals tun)
wie man alle Leerzeilen entfernt und ZWEI Leerzeilen bei MAXIMUM belässt,
(mehrmals tun)
Um ^ M einzugeben, muss ich Q und M in Windows steuern
quelle
\r
anstelle der verwendenCtrl-M
.Wie wäre es mit:
quelle
arbeite mit perl in vim:
:%!perl -pi -e s/^\s*$//g
quelle
chomp
auch den Job machen?Das funktioniert bei mir
:%s/^\s*$\n//gc
quelle
:%s/^\n//gc
Diese Funktion entfernt nur zwei oder mehr Leerzeilen, fügt die folgenden Zeilen in Ihr vimrc ein und ruft dann mit \ d die Funktion auf
quelle
Ich habe einige der Antworten auf dieser Seite ausprobiert, aber viele haben bei mir nicht funktioniert. Vielleicht, weil ich Vim unter Windows 7 verwende (nicht verspotten, nur Mitleid mit mir haben: p)?
Hier ist die einfachste, die ich gefunden habe und die unter Vim in Windows 7 funktioniert:
Hier ist eine längere Antwort auf Vim Wikia: http://vim.wikia.com/wiki/Remove_unwanted_empty_lines
quelle
Einfügen
Starten Sie dann in Ihrem .vimrc Ihr vim neu. Wenn Sie den Befehl: 5,12DBL verwenden, werden alle Leerzeilen zwischen der 5. und 12. Zeile gelöscht. Ich denke meine Antwort ist die beste Antwort!
quelle
Wenn Ihr Text einen doppelten Zeilenabstand hat, entfernt dieser Befehl den doppelten Abstand und führt bereits vorhandene, sich wiederholende Leerzeilen zu einer einzelnen Leerzeile zusammen. Es wird ein temporäres Trennzeichen von ^^^ am Anfang einer Zeile verwendet. Wenn dies mit Ihrem Inhalt kollidiert, wählen Sie etwas anderes. Zeilen, die nur Leerzeichen enthalten, werden als leer behandelt.
quelle
Drücken Sie deleteTaste im Einfügemodus , um Leerzeilen zu entfernen.
quelle
Das hat bei mir funktioniert:
Grundsätzlich werden alle Zeilen gelöscht, die keine Zahl oder keinen Buchstaben haben. Da alle Elemente in meiner Liste Buchstaben enthielten, wurden alle Leerzeilen gelöscht.
quelle