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.

Joz
źródło
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
Łatwy krok: stackoverflow.com/a/50042582/6597375
Deepu Reghunath

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

suchoss
źródło
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                               |
-----------------------------------------------
Dzumret
źródło
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!

Antonio Delgado
źródło
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 !!

Shabin Muhammed
źródło
13

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

Spójrz tutaj

VK.
źródło
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.

kobi7
źródło
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!

Marcelo Agimóvel
źródło
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.

Alan
źródło
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,}
Mamdouh
źródło
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.

Nguyễn Top
źródło
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

Jeden lub więcej znaków końca wiersza (\ n) + i zamień na \ n

Hector Matias Gonzalez
źródło
0

Jest moja wersja do czyszczenia pustych linii ze spacjami:

find:    (?:\s*$(\r?\n)){2,}
replace: $1
Artur Paszek
źródło
-1

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


źródło
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.

nazwa nie ma znaczenia
źródło
5
Visual Studio 2015 nie jest Visual Studio Code.
Robert Kaucher,