Nehmen wir an, ich hatte eine Textdatei mit den folgenden neun Zeilen:
foo
bar
baz
qux
quux
Wie kann ich mit Sublime Text 2 alle vier leeren/leeren Zeilen entfernen und nur fünf Zeilen übrig lassen?
Markieren Sie den Text
Drücken Sie:
Stellen Sie sicher, dass Sie "regulärer Ausdruck" ausgewählt haben, indem Sie auf drücken:
Finde was: ^\n
Ersetzen durch: (nichts, leer lassen).
Die Antwort in Hugos Antwort ist korrekt, wenn die Zeile keine Leerzeichen enthält. Falls Platz vorhanden ist, kann regexp ^\s+$
sein.
Es gibt auch einige ST2/ST3-Plugins für solche Aufgaben. Ich mag diese beiden:
Die erste hat zwei Methoden zum Entfernen von leeren/nicht benötigten Zeilen. Einer von ihnen nannte Delete Surplus Blank Lines
, was cool ist. Es entfernt nur die Zeilen, denen eine andere leere Zeile folgt
Eine Find/Replace-Lösung:
Regex-Suche: \s+
Ersetzen durch: // einzelnes Leerzeichen
Ich weiß gar nicht, wie das Ganze funktioniert, aber ich habe versucht ^\s*$
und funktionierte nicht (ließ immer noch ein paar leere Zeilen).
Das funktioniert stattdessen ^\s*
für mich
{erhabener Text 3}
Ich musste verwenden:
ersetzen Sie\n ^\s *\n durch\n
Das https://github.com/NicholasBuse/sublime_DeleteBlankLines plugin hat überhaupt nichts getan.
Einfacher als ich dachte. Ctrl
+ A
Gefolgt von Ctrl
+ H
Wählen Sie dann Regulärer Ausdruck .*
. Ersetzen Sie \n\n
durch \n
. Voila!
Die Kommentare von @crates funktionieren für mich,
Schritt 1: Drücken Sie einfach Strg + H
Schritt 2: Drücken Sie die RegEX-Taste
Schritt 3: Schreiben Sie dies in Find: ^[\s]*?[\n\r]+
Schritt 4: Alles ersetzen
Sie suchen das:
^\n|^\s+$
die Zeile wird nicht gelöscht, wenn sich Inhalt mit Leerzeichen oder Tabulatoren vor> befindet
z.B.:
diese werden nicht gelöscht: ... space ... abc
... tab ... abc
dieser Wille:
... Platz ... ... nichts anderes ...
... tab ... ... sonst nichts ...
Verwenden mehrerer Auswahlen: Wählen Sie ein Paar Zeilenumbrüche aus und verwenden Sie dann die Schnellsuche (Alt+F3) oder Quick Add Next (Ctrl+D) wiederholt, um sie alle auszuwählen; dann schlagen Enter um sie durch einzelne Zeilenumbrüche zu ersetzen.
Auf andere Weise können Sie die Befehlszeile cc.dbl
von ConyEdit (ein Plugin) verwenden, um Leerzeilen oder Leerzeilen zu löschen.
Es ist einfacher, dies ohne Regex zu tun. Sie müssen nur den gesamten Text auswählen. Gehen Sie dann zu: Bearbeiten -> Linien permutieren -> Eindeutig.
Das ist alles. und alle leeren Zeilen werden gelöscht.
Für diejenigen, die neugierig auf einen hervorragenden Texteditor sind, kann die inoffizielle Dokumentation interessant sein!
Es gibt ein wunderbares Paket (für Sublime 2 & 3) mit dem Namen 'Trimmer', das leere Zeilen löscht. Es macht auch viele andere nützliche Dinge.
Siehe hierzu: https://packagecontrol.io/packages/Trimmer
Es gibt auch "Verbindungslinien". Wählen Sie unter OSX Ihren gesamten Text aus und drücken Sie ein paar Mal CMD-J. Dadurch wird Ihre Auswahl zeilenweise ausgeblendet und die Zeilenumbrüche entfernt.
Bearbeiten: Bei diesem Ansatz bleibt alles in einer Zeile, was Sie nicht gewünscht haben.
In meinem Fall enthielten einige leere Zeilen das Unicode-Zeichen Nullbreite (U + 200b). Um leere Zeilen, einschließlich der mit diesem Unicode-Zeichen, zu entfernen:
\s\x{200b}|^\s
Versuchen Sie mit Suchen/Ersetzen, eine Auswahl einzufügen, die am Ende der Zeile oberhalb der Leerzeile beginnt und am Anfang der Zeile nach dem Leerzeichen endet. Dies funktioniert für eine einzelne leere Zeile. Sie können den Vorgang auch für mehrere Leerzeilen wiederholen. STRG-H, geben Sie Ihre Auswahl in das Suchfeld ein und fügen Sie einen einzelnen Zeilenumbruch durch Kopieren/Einfügen oder eine andere Methode in das Ersetzungsfeld ein.