Visual Studio Code - usuń wszystkie puste wiersze - wyrażenie regularne


139

Spędziłem trochę czasu, próbując dowiedzieć się, jak usunąć wszystkie puste wiersze w Visual Studio Code i nie mogę go uruchomić. Czy ktoś wie, jak to zrobić, proszę?

Jeśli szukam ^$wpisując go w polu wyszukiwania, VSC znajduje puste wiersze (całkowicie puste wiersze, oznacza brak spacji), ale nie usuwa ich, gdy naciskam przycisk Zamień wszystko. Nic nie robi: ^ $

W przypadku pustych wierszy ze spacjami ^\s+$wyszukiwanie działa, ale ich nie usuwa. To, co robi, to zastępuje je pustą linią bez spacji :)) ^ \ s + $

To musi być coś złego. Po prostu nie wiem, co to jest. Czy ktoś wie? Dzięki.


1
Dodałem komentarz do problemu, który otworzyłeś na ten temat, ale dla nikogo innego w $rzeczywistości nie pasuje do znaku nowej linii, pasuje do tokenu o zerowej szerokości, który istnieje przed znakiem nowego wiersza. Aby zastąpić nową linię trzeba użyć \nale kod VS nie obsługuje obecnie mecze regex obsługujący kilka linii ( # 313 )
Marie

Dziękuję Marie. Wygląda na to, że musimy chwilę poczekać.
Joz,

4
Znajdź to w trybie regex ^ $ \ n i zamień na puste również będzie działać dobrze. Miłego kodowania !!!
sajal rajabhoj

Odpowiedzi:


204

Dla zainteresowanych - co działało u mnie w wersji 1.3.1 (i nadal działa w 1.33.1) przy usuwaniu pustych linii użyłem ctrl+ h(znajdź i zamień) alt+ r(użyj wyrażenia regularnego)

W polu wyszukiwania:

\n\n

W pudełku zastępczym:

\n

Powinno to spowodować połączenie dwóch kolejnych znaków końca linii w jeden.

edytowano:

Jeśli chcesz zamienić więcej pustych wierszy (więcej niż dwa) na raz, możesz użyć następującego wyrażenia regularnego w polu wyszukiwania:

\n+

Jeśli chcesz zamienić również puste wiersze na białe znaki, musisz użyć następującego wyrażenia regularnego w polu wyszukiwania:

\n+\s*\n

Kod VS używa wyrażeń regularnych javascript


11
W tym kontekście używam^[\r\n]{3,}
RJ Cuthbertson,

Już działa. Dzięki :) Wiele wersji VSC pomiędzy, ale to w porządku. Zamień \ n \ n na \ n działało dobrze.
Joz

Spójrz również na rozwiązanie @Dzumret poniżej. W moim rozwiązaniu usuwa tylko linie, w których nic nie ma. Jego rozwiązanie usuwa wiersze, w których są również jakieś białe znaki (spacje, tabulatory)
suchoss

Ta odpowiedź nie obejmuje wszystkich przypadków, a co jeśli masz spacje w pustej linii
dhaker,

1
Świetny! Aby usunąć więcej niż jedną kolejną pustą linię, zamieniłem \ n + na \ n. Aby również znaleźć białe znaki, zamień (^ \ s * \ n) + z niczym
Ilario,

121

Działa również ten wzorzec wyrażenia regularnego:

^\s*$\n

Następnie CTRL+Enterwymienić wszystkie linie.

Wyjaśnienie powyższego wzoru:

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

Nie jestem pewien, ale tylko to zadziałało dla mnie, porównaj ze wszystkimi innymi odpowiedziami. Dobrze wyjaśnione. Dziękuję Ci.
Sai

U \nmnie zadziałało umieszczenie zewnętrznej strony kotwic. VSCode pozwolił wówczas na zastąpienie go niczym (puste pole „zamień na”).
Eric

46

Visual Studio Code 1.13.0 Linux Lite:

  • Hit CTRL+H
  • Wybierz „Użyj wyrażenia regularnego”
  • Pole wyszukiwania: ^ (\ s) * $ \ n (wprowadź wiele końcówek \ n według potrzeb)
  • Pole zastępcze: puste
  • Kliknij zamień wszystko

Zniknęły puste linie!


18

Oto moje wyrażenie regularne, które przechwytuje wszystkie dodatkowe nowe wiersze i puste wiersze zawierające tylko spacje, tabulatory itp

\n\s*\n

I zamieniam wszystkie mecze na \n

Wyjaśnienie

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

PS: Pamiętaj, aby wybrać opcję regex w oknie wyszukiwania !!


13

Spróbuj użyć ^ \ s * \ n w oknie dialogowym Zamień w programie VS Code -

Spójrz tutaj


6

nie, robisz to dobrze.

Tutaj mam takie samo zachowanie.

Próbowałem też innego wyrażenia regularnego: (\r?\n){2,} ale wygląda na to, że działa tylko dla pojedynczych wierszy.

być może istnieje preferencja, aby zmienić domyślne zachowanie wyrażenia regularnego, a może VS jest po prostu zbudowany w taki sposób (oparty na wierszach)

oczywiście wycinanie-wklejanie i powrót z innego edytora tekstu nie jest wielkim problemem.


3
pomogło mi to dopiero po zastąpieniu wszystkich ^\s*$pustymi, a potem spróbowałem(\r?\n){2,}
Mihai Popescu

5

Nie wiem jak Ty, ale zapamiętywanie wielu poleceń wydaje mi się stratą czasu!

Użyj rozszerzenia „Blank Line Organizer”, oto opis:

To rozszerzenie pomoże Ci uporządkować puste wiersze w kodzie, usuwając wiele pustych wierszy. Rozszerzenie usuwa puste wiersze tylko z wybranych wierszy, jeśli takie istnieją, w przeciwnym razie z całego pliku

Jak z niego korzystać: sprawdź opis rozszerzenia, ale naprawdę wygląda ładnie!

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

Innymi słowy, po zapisaniu pliku automatycznie się czyści!


Cześć @Jun! Używam Sublime Text3, który rozwiązał wiele problemów, a ponadto jest lżejszy i ma kilka fajnych funkcji.
Marcelo Agimóvel

jakiej wtyczki używasz z Sublime Text3? Kiedyś korzystałem z Webstorm i jest wbudowany.
Jun711

Html / CSS / JS
Prettify

Uwaga o „blankLine” → pamiętaj, aby dodać swój język do identyfikatorów języków, które będzie przetwarzany. Na przykład dodaj "csharp",do przetwarzania plików .csharp
Ty Irvine

3

Zauważyłem, że w programie Visual Studio najlepiej działa dla mnie:

Zamień: na ^\n$ : <no value here>

To znajdzie wszystkie puste linie i usunie je.


3

W moim przypadku. Rozwiązanie kobi7 (\r?\n){2,}działało tylko dla mnie, musiałem go uruchomić ponownie z niewielką modyfikacją, aby działało dla pojedynczych linii (tylko zmieniłem 2 na 1)

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

0

Code Maid Extension to wszystko, czego potrzebujesz. Możesz użyć skrótu Ctrl M + spacja, aby wyczyścić plik, usunie puste linie i sformatuje twój kod. Możesz także skonfigurować format i regułę czyszczenia. Mam nadzieję, że to przydatne.


Nie znaleziono (w systemie Manjaro Linux).
Marcelo Agimóvel

2
Dzieje się tak, ponieważ jest to rozszerzenie programu Visual Studio, a nie rozszerzenie programu Visual Studio Code.
Rene Juuse


0

Jest moja wersja do czyszczenia pustych linii ze spacjami:

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

-1

Zamień: ^ \ n $ na: „spacja”


i usunąć wszystkie puste miejsca w dokumencie?
Angry 84

-4

Windows 10, Visual Studio 2015

Ctrl + H

Znajdź ... -> ^ \ s *

Zamień wszystko

Ctrl + A

Ctrl + K + F.

Dziękuję za pytanie, nauczyłem się czegoś nowego.


5
Visual Studio 2015 nie jest Visual Studio Code.
Robert Kaucher,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.