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?

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).


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+$


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


10

Eine Lösung zum Suchen / Ersetzen:

Regex Find:\s+

Ersetzen durch: // einzelnes Leerzeichen


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}


7

Ich musste verwenden:

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

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


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


5

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


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 ...


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.


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.


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.


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.


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



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

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.


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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.