Visual Studio Code - Alle Leerzeilen löschen - Regex


133

Ich habe einige Zeit damit verbracht, herauszufinden, wie alle Leerzeilen in Visual Studio Code gelöscht werden können, und ich kann es nicht zum Laufen bringen. Weiß jemand, wie es geht, bitte?

Wenn ich ^$beim Eingeben in das Suchfeld suche, findet VSC die Leerzeilen (vollständig leere Zeilen, bedeutet keine Leerzeichen), entfernt sie jedoch nicht, wenn ich auf Alle ersetzen klicke. Es macht nichts: ^ $

Für Leerzeilen mit Leerzeichen ^\s+$funktioniert die Suche, entfernt sie jedoch nicht. Es ersetzt sie durch eine Leerzeile ohne Leerzeichen :)) ^ \ s + $

Es muss sein, dass ich etwas falsch mache. Ich kann einfach nicht herausfinden, was es ist. Weiß jemand Bescheid? Vielen Dank.


1
Ich habe einen Kommentar zu dem Problem hinzugefügt, das Sie zu diesem Thema eröffnet haben, aber für alle anderen $stimmt es nicht mit dem neuen Zeilenzeichen überein, sondern mit einem Token mit der Breite Null, das vor dem neuen Zeilenzeichen vorhanden ist. Um eine neue Zeile zu ersetzen, müssen Sie verwenden, \naber VS Code unterstützt derzeit keine mehrzeiligen Regex-Übereinstimmungen ( # 313 )
Marie

Danke Marie. Es scheint, wir müssen eine Weile warten.
Jozefk

4
Suchen Sie dies im Regex-Modus ^ $ \ n und ersetzen Sie es durch Leerzeichen. Viel Spaß beim Codieren !!!
Sajal Rajabhoj

Antworten:


194

Für diejenigen, die interessiert sein könnten - was für mich in Version 1.3.1 funktioniert hat (und immer noch in 1.33.1 funktioniert), um leere Zeilen zu löschen, die ich verwendet habe ctrl+ h(suchen und ersetzen) alt+ r(regulären Ausdruck verwenden)

Im Suchfeld dann:

\n\n

In der Ersatzbox:

\n

Dies sollte zwei aufeinanderfolgende Zeichen am Zeilenende zu einem machen.

bearbeitet:

Wenn Sie mehr Leerzeilen (mehr als zwei) gleichzeitig ersetzen müssen, können Sie den folgenden regulären Ausdruck im Suchfeld verwenden:

\n+

Wenn Sie auch leere Zeilen durch Leerzeichen ersetzen müssen, müssen Sie im Suchfeld den folgenden regulären Ausdruck verwenden:

\n+\s*\n

VS-Code verwendet reguläre Javascript-Ausdrücke


10
In diesem Sinne benutze ich^[\r\n]{3,}
RJ Cuthbertson

Es funktioniert jetzt. Danke :) Viele Versionen von VSC dazwischen, aber das ist in Ordnung. Ersetzen Sie \ n \ n durch \ n hat gut funktioniert.
Jozefk

Schauen Sie sich auch die unten stehende @ Dzumret-Lösung an. In meiner Lösung werden nur Zeilen gelöscht, in denen nichts vorhanden ist. Seine Lösung löscht Zeilen, in denen auch Leerzeichen (Leerzeichen, Tabulatoren) vorhanden sind
B.

Diese Antwort nimmt nicht alle Fälle, was ist, wenn Sie Leerzeichen in Leerzeile haben
dhaker

1
Toll! Um mehr als eine aufeinanderfolgende Leerzeile zu entfernen, habe ich \ n + durch \ n ersetzt. Um auch nach Leerzeichen zu suchen, ersetzen Sie (^ \ s * \ n) + durch nichts
Ilario

114

Was auch funktioniert, ist dieses Regex-Muster:

^\s*$\n

Dann CTRL+Enteralle Leitungen ersetzen.

Erklärung des obigen Musters:

-----------------------------------------------
|  ^ | beginning of string anchor             |
-----------------------------------------------
| \s | any whitespace character               |
-----------------------------------------------
| '*'| zero or more repetitions               |
-----------------------------------------------
|  $ | end of string anchor                   |
-----------------------------------------------
| \n | new line                               |
-----------------------------------------------

Ich bin mir nicht sicher, aber nur das hat bei mir funktioniert, vergleiche mit allen anderen Antworten. Auch gut erklärt. Danke dir.
Sai

\nFür mich hat es funktioniert, die Außenseite der Anker zu platzieren. VSCode erlaubte dann, dass es durch nichts ersetzt wurde (leeres Feld "Ersetzen durch").
Eric

46

Visual Studio Code 1.13.0 Linux Lite:

  • Drücken Sie CTRL+H
  • Wählen Sie "Regulären Ausdruck verwenden"
  • Suchfeld: ^ (\ s) * $ \ n (geben Sie nach Bedarf viele Endungen ein \ n)
  • Box ersetzen: leer
  • Klicken Sie auf Alle ersetzen

Leere Zeilen weg!


18

Hier ist meine Regex, sie fängt alle zusätzlichen neuen Zeilen und leeren Zeilen ab, die nur Leerzeichen, Tabulatoren usw. Enthalten

\n\s*\n

Und ich ersetze alle Streichhölzer durch \n

Erläuterung

\n       : New Line
\s*      : Zero or more consecutive white space characters or new lines
\n       : Another New Line

PS: Denken Sie daran, die Regex-Option im Suchfenster zu wählen!


13

Versuchen Sie es mit ^ \ s * \ n im Dialogfeld Ersetzen von VS Code -

siehe hier


6

Nein, du machst es richtig.

Ich bekomme hier das gleiche Verhalten.

Ich habe auch einen anderen regulären Ausdruck ausprobiert: (\r?\n){2,} aber es scheint, dass er nur für einzelne Zeilen funktioniert.

Vielleicht wird das Standard-Regexp-Verhalten bevorzugt geändert, oder VS ist nur so aufgebaut (zeilenbasiert).

Natürlich ist es keine große Sache, sie aus einem anderen Texteditor auszuschneiden und wieder einzufügen.


3
Dies half mir erst, nachdem ich alles ^\s*$durch leer ersetzt hatte, dann versuchte ich es(\r?\n){2,}
Mihai Popescu

4

Ich weiß nichts über dich, aber viele Befehle für mich auswendig zu lernen, ist Zeitverschwendung!

Verwenden Sie die Erweiterung "Blank Line Organizer", hier die Beschreibung:

Diese Erweiterung hilft Ihnen beim Organisieren von Leerzeilen im Code, indem Sie mehrere Leerzeilen entfernen. Die Erweiterung entfernt nur leere Zeilen aus den ausgewählten Zeilen, andernfalls aus der gesamten Datei

Wie man es benutzt: Überprüfen Sie die Beschreibung der Erweiterung, aber es scheint wirklich schön!

blankLine.triggerOnSave boolean true    If set to true, the command will be triggered on save.

Mit anderen Worten, nach dem Speichern der Datei wird automatisch bereinigt!


Hallo @Jun! Ich benutze Sublime Text3, das viele Probleme gelöst hat, außerdem leichter ist und einige nette Funktionen hat.
Marcelo Agimóvel

Welches Plugin verwendest du mit Sublime Text3? Ich habe Webstorm verwendet und es ist eingebaut.
Jun711

Html / CSS / JS Prettify
Marcelo Agimóvel

3

Ich habe festgestellt, dass in Visual Studio Folgendes für mich am besten funktioniert:

Ersetzen: ^\n$ Durch: <no value here>

Dadurch werden alle leeren Zeilen gefunden und gelöscht.


3

In meinem Fall. Die kobi7-Lösung (\r?\n){2,}funktionierte nur für mich. Ich musste sie mit kleinen Änderungen erneut ausführen, damit sie für einzelne Zeilen funktioniert (nur 2 zu 1 geändert).

^(\r?\n){1,}

0

Code Maid Extension ist alles, was Sie brauchen. Sie können die Tastenkombination Strg M + Leertaste verwenden, um Ihre Datei zu bereinigen. Sie entfernt leere Zeilen und formatiert Ihren Code. Sie können auch das Format und die Bereinigungsregel konfigurieren. Hoffe das nützlich.


Nicht gefunden (unter Manjaro Linux).
Marcelo Agimóvel

2
Dies liegt daran, dass es sich um eine Visual Studio-Erweiterung handelt, nicht um eine Visual Studio-Code-Erweiterung.
Rene Juuse


0

Es gibt meine Version zum Reinigen von Leerzeilen mit Leerzeichen:

find:    (?:\s*$(\r?\n)){2,}
replace: $1

-1

Ersetzen: ^ \ n $ Durch: "Leerzeichen"


und jedes Leerzeichen in Ihrem Dokument entfernen?
Wütend 84

-4

Windows 10, Visual Studio 2015

Strg + H.

Finden Sie ... -> ^ \ s *

Alles ersetzen

Strg + A.

Strg + K + F.

Vielen Dank für Ihre Frage, ich habe etwas Neues gelernt.


5
Visual Studio 2015 ist kein Visual Studio-Code.
Robert Kaucher
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.