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?

Sriram
quelle
@ RobertMacLean diese Frage wurde vor der oben getaggten Frage gestellt
Sriram
1
@ RobertMacLean erstellt einen doppelten Zyklus
Kishan Kumar
Hast du das gesehen.? stackoverflow.com/a/50042582/6597375
Deepu Reghunath
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.

Håkon Egset Harnes
quelle
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

Schick
quelle
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<
Eric Bole-Feysot
quelle
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.

Stiv Ostenberg
quelle
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.

Bastiaan Deknudt
quelle
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.

Tripleonard
quelle
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

ekkis
quelle
1

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

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

TomoMiha
quelle