Usuń puste wiersze w tekście przy użyciu programu Visual Studio

152

Jak usunąć puste wiersze w programie Visual Studio?

Alaa
źródło
Visual Studio Code
Deepu Reghunath
2
Czy jest na to odpowiedź bez użycia wyrażenia regularnego? Wystarczy użyć skrótu, takiego jak CTRL-KD, który formatuje dokument, ale zapomina o usunięciu podwójnych pustych linii.
Sty

Odpowiedzi:

174

Ponieważ program Visual Studio 2012 zmienił składnię wyrażenia regularnego, oryginalne odpowiedzi Ala przekładają się na następujące w VS 2012:

Usuń pojedyncze puste linie

Stary:

^:b*$\n

Nowy:

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

Visual Studio 2013 (dzięki BozoJoe i Joe Johnston):

^\s*$\n

Usuń podwójne puste linie

Stary:

^:b*\n:b*\n

Nowy:

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

Zsuwa się z języka.

Oto arkusz konwersji z MSDN.

Lennart
źródło
13
vs2013: ^ \ s + $ \ n
BozoJoe
Odpowiedź BozoJoe, dla mnie, działała dobrze również w VS2012 (aktualizacja 4)
BertuPG,
5
^ \ s + $ \ n zmieniono na ^ \ s * $ \ n zezwalaj na (bez zawartości) czyste wysunięcia wiersza.
Joe Johnston,
4
Jak mogę to uczynić zautomatyzowanym, jak praca z CTRL + K + D?
ErTR,
Czy to ma działać dla ciągów czy dla kodu w edytorze?
Kyle Delaney,
114

Jest to bardzo przydatne zwłaszcza jeśli chcesz uporządkować lub porównać kody, dzięki dla osób, które odpowiedzą na to pytanie, odpowiedź mam stąd i nią podzielić ze Stackoverflow:

Program Visual Studio ma możliwość usuwania pustych wierszy podczas operacji zamiany przy użyciu wyrażeń regularnych.

  • Kliknij Ctrl- H(szybka wymiana)

  • Zaznacz „Użyj wyrażeń regularnych”

  • W Znajdź określ ^$\n

  • W polu Zamień usuń wszystko.

  • Kliknij „Zamień wszystko”

Wszystkie puste wiersze zostaną usunięte.

Wyrażenie regularne dla pustego wiersza składa się z

Początek wiersza ^

Koniec linii $

Przerwanie linii \n

Zauważ, że zwykle w systemie Windows koniec linii oznaczony jest 2 znakami - Powrót karetki (CR, ASCII 13, \r) Przesuw wiersza (LF, ASCII 10, \n).

Wyrażenie regularne do usuwania pustych wierszy, które są / nie są tak naprawdę puste (tj. Zawierają / nie mają spacji): ^:b*$\n

Aby usunąć podwójne linie: ^:b*\n:b*\nzamień na:\n

* dla Visual Studio 2013 i nowszych: *

^\s*$\n

a dla linii podwójnych:

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

Zobacz aktualizacje składni wyrażeń regularnych dla VS2012 i nowszych w odpowiedzi @ lennart poniżej

Alaa
źródło
Działa jak urok z czyszczeniem pliku XML w programie Visual Studio 2015. Czy ktoś wie, jak utworzyć skrót, aby to wykonać?
Leszek P
1
w przypadku programu Visual Studio 2012 i nowszych sprawdź odpowiedź poniżej
Alaa
1
Czy istnieje sposób, aby to zadziałało z automatycznym formatyzatorem?
Kyle Delaney,
19

W programie Visual Studio 2013 (wersja 12.0.20623.01) usunąłem puste wiersze za pomocą tego wyrażenia regularnego. ^\r\nNa ekranie widać dopasowane linie oznaczone brązowymi kwadratami.

Visual Studio 2013 zastępuje puste wiersze

surfmuggle
źródło
Ja też próbowałem, ale studio wizualne zamarzło na kilka minut, a potem zastąpiło tylko jedno wystąpienie z kilkuset, które mam! lol :-D
BertuPG
17

Przetestowano w VS 2012, aby umożliwić podawanie czystej linii.

^\s*$\n 

hth

Joe Johnston
źródło
2
to działa dla mnie w VS 2015, zaakceptowana odpowiedź niestety nie
EdwardM
Działa również w VS 2013.
Joe Johnston
2
Działa dobrze w VS 2017, zaakceptowana odpowiedź nie.
Germstorm,
Działa również w 2019 roku
Joe Johnston
17

Korzystanie z programu Visual Studio 2017 i nowszych wersji

w bieżącym dokumencie

użyj skrótu

  • Otwórz Narzędzia > Opcje lub naciśnij Alt+ T+O
  • Na karcie Środowisko > Klawiatura
  • Wyszukaj „ DeleteBlank ” i wybierzEdit.DeleteBlankLines
  • Dodaj nowy skrót, na przykład Ctrl+ D, Ctrl+E
  • Przypisz > OK

zaznacz cały tekst i naciśnij skrót

wprowadź opis obrazu tutaj

Anas Alweish
źródło
Spowoduje to tylko usunięcie wybranych pustych linii lub z bieżącego wiersza do następnego niepustego wiersza. Nie dotyczy całego dokumentu lub projektu.
Sty
1
Spróbuj wybrać wszystko przed uruchomieniem polecenia, a wtedy zadziała.
Kris Morness
9

Aby usunąć dwa lub więcej sąsiednich pustych wierszy za pomocą VS2012, użyj tego:

^(?([^\r\n])\s)*\r?$\r?\n^(?([^\r\n])\s)*\r?$\r?\n
pbz
źródło
Szukałem rozwiązania, które pozwoliłoby zamienić dwie puste linie na jedną. Mi to pasuje. Dzięki!
Ricardo França
8

Używam Visual Studio 2017, żadne z powyższych nie działało, dopóki nie spróbowałem \n\r

Kroki:

  1. Ctrl + H (otwiera znajdź i zamień)
  2. Wybierz użyj wyrażenia regularnego (Alt + E)
  3. Wejdź \n\rw pole „Znajdź ...”
  4. Naciśnij zamień
tony09uk
źródło
2

Zainstaluj CodeMaid i naciśnij też Ctrl+M, Space' to clean up the code. (It formats the code, like Format DocumentCtrl + E, D`). Możesz wyczyścić więcej plików z Eksploratora rozwiązań.

xmedeko
źródło
1

W VS 2012 ciąg wyrażenia regularnego używany do znajdowania i zastępowania wszystkich pustych wierszy to ^ (? ([^ \ R \ n]) \ s) \ r? \ N

cmsmith81
źródło
0

Ctrl+ K, Ctrl+ Dautomatycznie formatuje bieżący dokument, a to usuwa niepotrzebne miejsce w kodzie. Pomaga zachować czytelność kodu, jeśli tego właśnie szukałeś.

Marcus Callender
źródło
odnoszę się do mojego problemu, proszę spojrzeć, wygląda, to jest coś, czego szukałem. stackoverflow.com/questions/44747909/… .
Vivek Shukla
1
Nie usuwa to podwójnych / zbędnych pustych wierszy.
Sty