Entfernen Sie leere Zeilen im Text mit Visual Studio

152

Wie entferne ich leere Zeilen in Visual Studio?

Alaa
quelle
Für Visual Studio Code
Deepu Reghunath
2
Gibt es eine Antwort darauf ohne Verwendung eines regulären Ausdrucks? Verwenden Sie einfach eine Verknüpfung wie STRG-KD, die das Dokument formatiert, aber vergisst, doppelte Leerzeilen zu entfernen.
Januar

Antworten:

173

Da Visual Studio 2012 seine Regex-Syntax geändert hat, werden die ursprünglichen Antworten von Ala in VS 2012 wie folgt übersetzt:

Entfernen Sie einzelne Leerzeilen

Alt:

^:b*$\n

Neu:

^(?([^\r\n])\s)*\r?$\r?\n

Visual Studio 2013 (danke an BozoJoe und Joe Johnston):

^\s*$\n

Doppelte Leerzeilen entfernen

Alt:

^:b*\n:b*\n

Neu:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

Rollt direkt von deiner Zunge.

Hier ist das Umrechnungsblatt von MSDN.

Lennart
quelle
13
vs2013: ^ \ s + $ \ n
BozoJoe
BozoJoes Antwort funktionierte für mich auch in VS2012 gut (Update 4)
BertuPG
5
^ \ s + $ \ n wurde in ^ \ s * $ \ n geändert und ermöglicht (ohne Inhalt) reine Zeilenvorschübe.
Joe Johnston
4
Wie kann ich dies automatisieren, beispielsweise mit STRG + K + D?
ErTR
Soll dies für Zeichenfolgen oder für Code im Editor funktionieren?
Kyle Delaney
114

Es ist sehr nützlich, besonders wenn Sie Codes arrangieren oder vergleichen möchten. Vielen Dank für die Leute, die diese Frage beantworten. Ich habe die Antwort von hier Vielen und möchte sie mit Stackoverflow teilen:

Visual Studio kann leere Zeilen beim Ersetzen mit regulären Ausdrücken löschen.

  • Klicken Sie auf Ctrl- H(schnelles Ersetzen)

  • Kreuzen Sie "Reguläre Ausdrücke verwenden" an

  • In Suchen angeben ^$\n

  • Im Feld Ersetzen löschen Sie alles.

  • Klicken Sie auf "Alle ersetzen".

Alle Leerzeilen werden gelöscht.

Regulärer Ausdruck für leere Zeile besteht aus

Zeilenanfang ^

Ende der Linie $

Zeilenumbruch \n

Beachten Sie, dass normalerweise in Windows ein Zeilenende durch 2 Zeichen angezeigt wird - Zeilenvorschub (CR, ASCII 13, \r) Zeilenvorschub (LF, ASCII 10, \n).

Ein regulärer Ausdruck zum Entfernen von Leerzeilen, die nicht wirklich leer sind (dh keine Leerzeichen enthalten): ^:b*$\n

So entfernen Sie doppelte Linien: ^:b*\n:b*\nErsetzen Sie durch:\n

* für Visual Studio 2013 und höher: *

^\s*$\n

und für doppelte Zeilen:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

Siehe die Syntaxaktualisierungen für reguläre Ausdrücke für VS2012 und höher in der Antwort von @ lennart unten

Alaa
quelle
Funktioniert wie ein Zauber beim Bereinigen von XML-Dateien in Visual Studio 2015. Weiß jemand, wie man eine Verknüpfung erstellt, um dies auszuführen?
Leszek P
1
für Visual Studio 2012 und höher überprüfen Sie die Antwort unten
Alaa
1
Gibt es eine Möglichkeit, mit dem automatischen Formatierer zu arbeiten?
Kyle Delaney
19

In Visual Studio 2013 (Version 12.0.20623.01) habe ich mit diesem regulären Ausdruck leere Zeilen entfernt. ^\r\nAuf dem Bildschirm sehen Sie die übereinstimmenden Zeilen, die durch die braunen Quadrate angezeigt werden.

Visual Studio 2013 ersetzt Leerzeilen

Surfmuggle
quelle
Ich habe es auch so versucht, aber Visual Studio blieb einige Minuten eingefroren und ersetzte dann nur 1 Vorkommen von mehreren hundert, die ich habe! lol :-D
BertuPG
17

In VS 2012 getestet, um reine Zeilenvorschübe zu ermöglichen.

^\s*$\n 

hth

Joe Johnston
quelle
2
Dies funktioniert für mich in VS 2015, die akzeptierte Antwort hat leider nicht
EdwardM
Funktioniert auch in VS 2013.
Joe Johnston
2
Funktioniert gut in VS 2017, die akzeptierte Antwort nicht.
Germstorm
Funktioniert auch 2019
Joe Johnston
17

Verwenden von Visual Studio 2017 und höher

im aktuellen Dokument

Verwenden Sie die Verknüpfung

  • Öffnen Sie Extras > Optionen oder drücken Sie Alt+ T+O
  • Unter Umwelt tab> Tastatur
  • Suchen Sie nach " DeleteBlank " und wählen SieEdit.DeleteBlankLines
  • Fügen Sie eine neue Verknüpfung hinzu, z. B. Ctrl+ D, Ctrl+E
  • Zuweisen > OK

Wählen Sie den gesamten Text aus und klicken Sie auf die Verknüpfung

Geben Sie hier die Bildbeschreibung ein

Anas Alweish
quelle
Dadurch werden nur ausgewählte Leerzeilen oder von der aktuellen Zeile bis zur nächsten nicht leeren Zeile gelöscht. Es ist nicht für das gesamte Dokument oder Projekt.
Januar
1
Versuchen Sie, alle auszuwählen, bevor Sie den Befehl ausführen. Dann funktioniert es.
Kris Morness
9

Verwenden Sie Folgendes, um zwei oder mehr benachbarte leere Zeilen mit VS2012 zu entfernen:

^(?([^\r\n])\s)*\r?$\r?\n^(?([^\r\n])\s)*\r?$\r?\n
pbz
quelle
Ich suchte nach einer Lösung, um zwei leere Zeilen in nur eine zu ersetzen. Für mich geht das. Vielen Dank!
Ricardo França
8

Ich benutze Visual Studio 2017, keines der oben genannten hat für mich funktioniert, bis ich es versucht habe \n\r

Schritte:

  1. Strg + H (öffnet Suchen und Ersetzen)
  2. Wählen Sie regulären Ausdruck verwenden (Alt + E)
  3. Geben \n\rSie den Eingang "Suchen ..." ein
  4. Drücken Sie auf Ersetzen
tony09uk
quelle
2

Installieren Sie CodeMaid und drücken Sie auchCtrl+M, Space' to clean up the code. (It formats the code, like Format Document Strg + E, D`. Sie können weitere Dateien im Projektmappen-Explorer bereinigen.

xmedeko
quelle
1

In VS 2012 lautet die Regex-Zeichenfolge zum Suchen und Ersetzen aller Leerzeilen ^ (? ([^ \ R \ n]) \ s) \ r? \ N.

cmsmith81
quelle
0

Ctrl+ K, Ctrl+ Dformatiert das aktuelle Dokument automatisch und entfernt so unnötigen Speicherplatz in Ihrem Code. Es hilft, Ihren Code lesbar zu halten, wenn Sie danach suchen.

Marcus Callender
quelle
Ich beziehe mich auf mein Problem, bitte schauen Sie, es sieht aus, das ist etwas, wonach ich gesucht habe. stackoverflow.com/questions/44747909/… .
Vivek Shukla
1
Dadurch werden keine doppelten / neu redundanten Leerzeilen entfernt.
Jan