Erhabener Text 2: So löschen Sie leere / leere Zeilen

271

Angenommen, 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, wobei nur fünf Zeilen übrig bleiben?

Nick
quelle

Antworten:

658

Wählen Sie den Text aus

Drücken Sie:

  • Ctrl+ Hauf dem PC oder
  • Command+ Alt+ FAuf Mac oder
  • Klicken Sie auf Suchen-> Ersetzen.

Stellen Sie sicher, dass Sie "regulärer Ausdruck" ausgewählt haben, indem Sie drücken:

  • Alt+ Rauf dem PC oder
  • Command+ Alt+ RAuf Mac oder
  • Klicken Sie .*in das Feld Suchen.

Finde was: ^\n

Ersetzen durch: (nichts, leer lassen).

Hugo Corrá
quelle
3
Das funktioniert, danke! Gibt es eine Möglichkeit, dieses Suchen / Ersetzen an eine Tastenkombination zu binden oder es für den schnellen Zugriff zu speichern? Ich habe es gegoogelt und konnte nichts finden
Nick
46
Kleiner Vorschlag ^(\r|\n\r?), um alle möglichen Zeilenumbrüche abzudecken.
Haris Krajina
5
Für mich (Sublime Text 2) ist die Abkürzung (Alt + Cmd + F) dann wie von Hugp Corra
Maxence
24
Ein besserer Weg, um alle leeren Zeilen (einschließlich ^[\s]*?[\n\r]+
Kisten
5
@Crates brauchen Sie nicht ?, da a *auch mit null Vorkommen \s*übereinstimmt und mit dem zusätzlichen '\ r' übereinstimmt, wenn Sie beispielsweise Windows-Text in einer Linux-Umgebung bearbeiten, ebenso ^\s*$wie der Trick.
Drevicko
67

Der reguläre Ausdruck in Hugos Antwort ist korrekt, wenn die Zeile keine Leerzeichen enthält. Falls Platz vorhanden ist, kann regulärer Ausdruck sein^\s+$

Signalpillar
quelle
32
Das setzt voraus, dass es Leerzeichen gibt. Es funktioniert auch nicht, wenn die Zeilen tatsächlich durch nichts ersetzt werden. Versuchen Sie es ^[\s]*?[\n\r]+stattdessen. Ich habe das getestet und es funktioniert.
Kisten
24

Es gibt auch einige ST2 / ST3-Plugins für solche Aufgaben. Ich mag diese beiden:

Die erste hat zwei Methoden zum Entfernen leerer / unnötiger Zeilen. Einer von ihnen hat angerufen, Delete Surplus Blank Lineswas cool ist. Es werden nur die Zeilen entfernt, auf die eine weitere leere Zeile folgt

V-Light
quelle
10

Eine Lösung zum Suchen / Ersetzen:

Regex Find:\s+

Ersetzen durch: // einzelnes Leerzeichen

Usersbs
quelle
3
Eigentlich das: $ \ s +
kris
8

Ich weiß nicht einmal, wie das Ganze funktioniert, aber ich habe es versucht ^\s*$und nicht funktioniert ( ich habe immer noch einige leere Zeilen hinterlassen).

Dies ^\s*funktioniert stattdessen für mich

{erhabener Text 3}

Abs
quelle
7

Ich musste verwenden:

Ersetzen Sie \ n ^ \ s * \ n durch \ n

Das https://github.com/NicholasBuse/sublime_DeleteBlankLines Plugin hat überhaupt nichts getan.

Bruce Edge
quelle
2
Stellen Sie sicher, dass Sie den Bereich auswählen, den Sie bewirken möchten, und verwenden Sie dann die entsprechenden Tastenkombinationen. Windows : Strg + Alt + Rücktaste (Leerzeilen löschen) Strg + Alt + Umschalt + Rücktaste (Überschüssige Leerzeilen löschen) OSX : Strg + Alt + Löschen (Leere Zeilen löschen ) Strg + Alt + Umschalt + Löschen (Leere Zeilen löschen) Linux : Strg + Alt + Rücktaste (Leere Zeilen
löschen
5

Erhabener Text 2 & 3

Die Kommentare von @crates funktionieren für mich,

Schritt 1: Drücken Sie einfach auf ctrl+H

Schritt 2: Drücken Sie die RegEX-Taste

Schritt 3: Schreiben Sie dies in die Suche: ^[\s]*?[\n\r]+

Schritt 4: Alle ersetzen

rsc05
quelle
5

Einfacher als ich dachte. Ctrl+ AGefolgt von Ctrl+ HWählen Sie dann Regulärer Ausdruck .*. Ersetzen \n\ndurch \n. Voila!

Samuel Wahome
quelle
3

Sie suchen dies:

^\n|^\s+$

Die Zeile wird nicht gelöscht, wenn Inhalt mit Leerzeichen oder Tabulatoren vor> vorhanden ist

z.B:

diese werden nicht gelöscht: ... space ... abc

... tab ... abc

dieser Wille:

... Raum ... ... sonst nichts ...

... tab ... ... sonst nichts ...

Brian Joseph Spinos
quelle
3

Verwenden mehrerer Auswahlen: Wählen Sie ein Zeilenumbruchpaar aus und wählen Sie dann alle mit Quick Find All ( Alt+ F3) oder Quick Add Next ( Ctrl+ D) wiederholt aus. EnterDrücken Sie dann , um sie durch einzelne Zeilenumbrüche zu ersetzen.

Deltab
quelle
1
In großen Dokumenten finde ich diesen Absturz Sublime.
Thalecress
3

Dies ist eine einfachere Möglichkeit, dies ohne Regex zu tun. Sie müssen nur den gesamten Text auswählen. Gehen Sie dann zu: Bearbeiten -> Linien zulassen -> Eindeutig.

Das ist alles. und alle Leerzeilen werden gelöscht.

Dihia LANASRI
quelle
Dadurch werden ALLE nicht eindeutigen Zeilen gelöscht. Nicht nur Leerzeichen. Angenommen, Sie haben HTML mit vielen Zeilen, die nur zum Schließen </ div> verwendet werden. Dadurch werden alle Zeilen außer der ersten gelöscht. Oder im Code werden alle Ihre Schließungen gelöscht. Dies ist nicht zuverlässig, um nur leere Zeilen zu löschen, verstehen, was es tut.
Ivan McA
2

Auf andere Weise können Sie die Befehlszeile cc.dblvon ConyEdit (ein Plugin) verwenden, um Leerzeilen oder Leerzeilen zu löschen.

Dick
quelle
1

Es gibt auch "Linien verbinden". Wählen Sie unter OSX Ihren gesamten Text aus und drücken Sie einige Male CMD-J. Dadurch wird Ihre Auswahl nach Zeilen reduziert und die Zeilenumbrüche entfernt.

Bearbeiten: Dieser Ansatz lässt Sie alles in einer Zeile, was nicht das ist, wonach Sie gefragt haben.

Donncha
quelle
2
obwohl .. ich sehe , wo Sie mit dieser gehen Dieser Vorschlag führt alle Inhalte in eine Zeile ziehen, sondern ein Makro würde diese Arbeit machen: (OSX - Tasten) ctrl-q(record Makro), cmd-j(Verbindungslinien) down arrow, ctrl-q(Ende Makro) . Dann shift-ctrl-qso oft wie nötig wiederholen ...
ptim
1

Für diejenigen, die neugierig auf einen großartigen Texteditor sind, kann die inoffizielle Dokumentation interessant sein!

herve
quelle
0

In meinem Fall enthielten einige leere Zeilen den Raum mit der Breite Null für Unicode-Zeichen (U + 200b). So entfernen Sie leere Zeilen, einschließlich der Zeilen mit diesem Unicode-Zeichen:

\s\x{200b}|^\s
MetalGodwin
quelle
0

Fügen Sie mit Suchen / Ersetzen eine Auswahl ein, die am Ende der Zeile über der Leerzeile beginnt und am Zeilenanfang nach der Leerzeile endet. Dies funktioniert für eine einzelne Leerzeile. Sie können den Vorgang auch für mehrere Leerzeilen wiederholen. CTRL- H, geben Sie Ihre Auswahl in das Suchfeld ein und fügen Sie eine einzelne neue Zeile per Kopieren / Einfügen oder auf andere Weise in das Ersetzungsfeld ein.

Clayton Loudon
quelle
0

Um zusätzliche Leerzeichen und Leerzeilen zu finden, drücken Sie Ctrl+ Shift+. F Wählen Sie Regular Expressions Find

[\n\r]{2,}

und dann ersetzen durch

\n

alle Arten von Räumen in erhabenem und traumhaftem zu entfernen

Naeem Ijaz
quelle
-1

Wenn ^\nnicht richtig funktioniert ===> versuchen .*[^\w]\n

Yuxin Zhang
quelle