Suchen und ersetzen Sie eine neue Zeile in Visual Studio Code


397

Ich probiere den neuen Microsoft Visual Studio Code-Editor in der Linux Fedora-Umgebung aus. Ich möchte wissen, wie man eine neue Zeile (\ n) anstelle eines anderen Textes ersetzt.

Zum Beispiel habe ich HTML-Text wie diesen

<tag><tag> 

was ich gerne ersetzen würde als

<tag>
<tag>

In sublime würde ich Regex-Muster verwenden und "> <" finden und durch "> \ n <" ersetzen. Wie kann ich dies in Visual Studio Code erreichen?



@ RobertMacLean diese Frage wurde vor der oben getaggten Frage gestellt
Sriram

1
@ RobertMacLean erstellt einen doppelten Zyklus
Kishan Kumar


Eigentlich kein Duplikat: Die andere Frage fragt nach dem Wagenrücklauf, diese nach Zeilenumbruch, und nein, die Antwort funktioniert aus irgendeinem Grund nicht für den Wagenrücklauf.
Jason Young

Antworten:


580

Im lokalen Suchfeld ( ctrl+ f) können Sie Zeilenumbrüche einfügen, indem Sie ctrl+ drücken enter.

Bild der mehrzeiligen Suche in der lokalen Suche

Wenn Sie die globale Suche ( ctrl+ shift+ f) verwenden, können Sie Zeilenumbrüche einfügen, indem Sie shift+ drücken enter.

Bild der mehrzeiligen Suche in der globalen Suche

Wenn Sie anhand des Zeichenliteral nach mehrzeiligen Zeichen suchen möchten, müssen Sie das Regex-Symbol ganz rechts aktivieren .

Bild des Regex-Modus bei der Suche ersetzen


In früheren Versionen von Visual Studio-Code war dies schwierig oder unmöglich. Ältere Versionen erfordern die Verwendung des Regex-Modus. Ältere Versionen unterstützten die Suche nach Zeilenumbrüchen jedoch überhaupt nicht.


6
Noch in Version 0.10.3. Aber es ist eine Erweiterung , die dies tun kann: marketplace.visualstudio.com/items/jmallien.ReplaceWithNewline
rmac

14
Beachten Sie, dass das Ersetzen durch Zeilenumbruchzeichen zwar unterstützt wird, das Suchen von Zeilenumbruchzeichen jedoch erst funktioniert, wenn github.com/Microsoft/vscode/issues/313 behoben ist.
C Snover

2
Dies funktioniert nicht auf dem Mac - es ersetzt buchstäblich \ r oder \ n
Naveen Vijay

38
Beachten Sie, dass der Regex-Modus aktiviert sein muss. Wenn nicht, wird kein Zeilenumbruch verwendet.
Neves

12
Regex suchen \\nund ersetzen durch \nWerke für mich, mit 1.25.0
Gregor

130

Mit VS Code Release 1.38 können Sie im Editor-Suchfeld CTRL+ drücken Enter, um ein Zeilenumbruchzeichen hinzuzufügen.

Geben Sie hier die Bildbeschreibung ein

Mit VS Code Release 1.30 können Sie Shift+ Enterin das Suchfeld eingeben, um ein Zeilenumbruchzeichen hinzuzufügen, ohne den Regex-Modus verwenden zu müssen.

Geben Sie hier die Bildbeschreibung ein

Seit VS Code Release 1.3 unterstützt die Regex-Suche Zeilenumbrüche. Um diese Funktion zu verwenden, stellen Sie das Suchfenster auf den Regex-Modus ein und verwenden Sie es \nals Zeilenumbruchzeichen.

Mehrzeiliger Fund in VS Code gif


Dies gab mir einen kleinen Schub in die richtige Richtung. Ich brauchte die leere Zeile, um HTML-Kommentare zu ersetzen: <!--[\s\S\n]*?-->Und mir fehlte die \ n :)
Guntram

Ich liebe diese Funktion, arbeite auch in der Suche und ersetze Felder!
SimplyInk

5
Funktioniert immer noch nicht in der Seitenleiste für Strg + Umschalt + F-Suche ... -_-
Xunnamius

61

In Version 1.1.1:

  • Ctrl+H
  • Überprüfen Sie das reguläre Exp-Symbol .*
  • Suche: ><
  • Ersetzen: >\n<

15
Vielen Dank für die Erwähnung, dass Sie das Regexp-Symbol drücken müssen!
Paul Chernoch

24

Beachten \nSie auch, dass ich nach dem Klicken auf das Regex-Symbol, um Text durch eine neue Zeile zu ersetzen , diese \\nals Suche und \nals Ersetzung verwenden musste.


1
Hi @Stiv toller Tipp, aber das hätte wirklich ein Kommentar sein sollen, da er die Frage nicht beantwortet.
Chic

Hätte nicht in den Kommentaren nachsehen können ... das war die Antwort, die ich brauchte. Danke @stiv!
Jack Ryan

16

Eine mögliche Problemumgehung wäre die Verwendung des Multi-Cursors. Wählen Sie den> <Teil Ihres Beispiels mit Ctrl+ Shift+ aus Loder wählen Sie alle Vorkommen aus. Verwenden Sie dann die Pfeiltasten, um alle Cursor zwischen den Tags zu verschieben, und drücken Sie die Eingabetaste, um überall eine neue Zeile einzufügen.

Dies funktioniert nicht in allen Situationen.

Sie können auch Ctrl+ verwenden, Dum die nächste Übereinstimmung auszuwählen, wodurch die nächste Übereinstimmung zur Auswahl hinzugefügt und ein Cursor hinzugefügt wird. Und verwenden Sie Ctrl+ K Ctrl+ D, um eine Auswahl zu überspringen.


Ctrl+Dist toll! Möglicherweise müssen Sie Ctrl+Fzuerst drücken und nach ein paar Ctrl+DSekunden oder Überspringen mit Ctrl+K Ctrl+Dkönnen Sie drücken Esc, um den Cursor in alle Auswahlen zu setzen!
CPHPython

4

Auf meiner Mac-Version von VS Code wähle ich den Abschnitt aus, dann lautet die Verknüpfung Ctrl+ j, um Zeilenumbrüche zu entfernen.


1

Mit v1.31.1 im RegEx-Modus ist die Funktion Alle ersetzen ersetzt. Durch Klicken auf diese Schaltfläche wird nur eine Instanz ersetzt


1

CTRL+ H, dann Regex (*) auswählen und \ n schreiben

Kürzere Version: CTRL+ H ALT+ R\ n

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.