Welchen Befehl kann ich ausführen, um leere Zeilen in Vim zu entfernen?
Danke soulmerge. Dies ist meine Lieblingsantwort, da sie tatsächlich erklärt, was der Befehl :g bewirkt.
Danke soulmerge. Dies ist meine Lieblingsantwort, da sie tatsächlich erklärt, was der Befehl :g bewirkt.
Dadurch werden alle leeren Zeilen (die keine Leerzeichen enthalten) gelöscht, aber das ist vielleicht nicht die einzige Anforderung. Jemand kann immer noch eine der leeren Zeilen behalten. :%!cat -s
kann die Wahl sein..
Gefunden, es ist:
g/^\s*$/d
Source : Macht der g bei vim wikia
Kurze Erläuterung von
:g
:[range]g/pattern/cmd
Dies wirkt sich auf die angegebene [Bereich] (standardmäßig ganze Datei), indem Sie den Ex-Befehl ausführen cmd für jede übereinstimmende Zeile Muster (ein Ex-Befehl ist ein Befehl, der mit einem Doppelpunkt beginnt, z. B.
:d
für löschen). Vor der Ausführung von cmd , ".
" wird auf die aktuelle Zeile gesetzt.
Ah, ja, damit werden Zeilen gefunden, die nur Leerzeichen enthalten. Ich akzeptiere die Antwort von soulmerge.
Die auf leere Zeilen UND Zeilen, die nur aus Leerzeichen bestehen, passen sollte... (* passt auf null oder mehrere Instanzen von \s... )?
Netter Trick mit dem :v/./d (leichter zu tippen), aber dann muss man danach ein :nohl machen.
@zladuric nach vim.wikia.com/wiki/Kraft_von_g es ist reVerse global (d.h. es führt den Befehl für alles aus, was nicht übereinstimmt)
\_$
bedeutet die Zeilenende die innerhalb eines Musters verwendet werden können ( $
kann nur am Ende des Musters verwendet werden). Dasselbe gilt für \_^
das heißt den Anfang einer Zeile und kann überall innerhalb des Musters verwendet werden. Das Muster passt also auf eine leere Zeile, einen Zeilenumbruch und wieder eine leere Zeile. Siehe Vim Regex-Hilfeseite .
wie man alle Leerzeilen entfernt
:%s,\n\n,^M,g
(machen Sie dies mehrere Male, bis alle leeren Zeilen verschwunden sind)
wie man alle Leerzeilen entfernt und eine einzige leere Zeile übrig lässt
:%s,\n\n\n,^M^M,g
(machen Sie dies mehrmals)
wie man alle Leerzeilen entfernt, so dass MAXIMAL ZWEI Leerzeilen übrig bleiben,
:%s,\n\n\n\n,^M^M^M,g
(machen Sie dies mehrmals)
um ^M einzugeben, muss ich unter Windows Control-Q und Control-M drücken
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.