Codice di Visual Studio: elimina tutte le righe vuote: regex


133

Ho trascorso un po 'di tempo a cercare di capire come eliminare tutte le righe vuote in Visual Studio Code e non riesco a farlo funzionare. Qualcuno sa come farlo per favore?

Se cerco ^$durante la digitazione nel campo di ricerca, VSC trova le righe vuote (linee completamente vuote, non significa spazi bianchi) ma non le rimuove quando premo Sostituisci tutto. Non fa nulla: ^ $

Per le righe vuote con spazi, la ^\s+$ricerca funziona, ma non le rimuove. Quello che fa è sostituirli con una riga vuota senza spazi :)) ^ \ S + $

Deve essere che sto facendo qualcosa di sbagliato. Non riesco proprio a capire cosa sia. Qualcuno lo sa? Grazie.


1
Ho aggiunto un commento sul problema che hai aperto al riguardo, ma per chiunque altro, in $realtà non corrisponde al nuovo carattere di linea, corrisponde a un token di larghezza zero che esiste prima del nuovo carattere di linea. Per sostituire una nuova linea devi usare \nma VS Code attualmente non supporta le partite regex multilinea ( # 313 )
Marie

Grazie Marie. Sembra che dobbiamo aspettare un po '.
jozefk,

4
Trova questo in modalità regex ^ $ \ n e sostituiscilo con lo spazio vuoto funzionerà bene. Buona programmazione !!!
sajal rajabhoj,

Risposte:


194

Per coloro che potrebbero essere interessati - cosa ha funzionato per me nella versione 1.3.1 (e funziona ancora in 1.33.1) per eliminare le righe vuote che ho usato ctrl+ h(trova e sostituisci) alt+ r(Usa espressione regolare)

Nella casella Trova quindi:

\n\n

Nella casella di sostituzione:

\n

Ciò dovrebbe trasformare due segni consecutivi di fine riga in uno.

modificato:

Se è necessario sostituire più righe vuote (più di due) contemporaneamente, è possibile utilizzare la seguente espressione regolare nella casella Trova:

\n+

Se è necessario sostituire anche le righe vuote con spazi bianchi, è necessario utilizzare la seguente espressione regolare nella casella Trova:

\n+\s*\n

Il codice VS utilizza espressioni regolari javascript


10
In questo senso, uso^[\r\n]{3,}
RJ Cuthbertson il

Sta lavorando adesso. Grazie :) Un sacco di versioni di VSC nel mezzo ma va bene. Sostituisci \ n \ n con \ n ha funzionato bene.
jozefk,

Guarda anche la soluzione @Dzumret di seguito. Nella mia soluzione cancella solo le linee dove non c'è nulla. La sua soluzione elimina le linee in cui è presente anche un carattere di spazi bianchi (spazi, tabulazioni)
esempio il

Questa risposta non prende tutti i casi, e se hai spazi in linea vuota
dhaker

1
Grande! Per rimuovere più di una riga vuota consecutiva ho sostituito \ n + con \ n. Per acocunt anche per gli spazi bianchi sostituisci (^ \ s * \ n) + con niente
Ilario

114

Ciò che funziona è anche questo modello regex:

^\s*$\n

Quindi CTRL+Enterper sostituire tutte le linee.

Spiegazione del modello sopra:

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

Non sono sicuro, ma solo questo ha funzionato per me, rispetto a tutte le altre risposte. Ben spiegato anche. Grazie.
Sai

Posizionare l' \nesterno delle ancore è ciò che ha funzionato per me. VSCode ha quindi permesso di sostituirlo con nulla (campo "sostituisci con" vuoto).
Eric

46

Visual Studio Code 1.13.0 Linux Lite:

  • Premi CTRL+H
  • Seleziona "Usa espressione regolare"
  • Trova la casella: ^ (\ s) * $ \ n (inserisci molti finali \ n di cui hai bisogno)
  • Sostituisci scatola: vuota
  • Fai clic su Sostituisci tutto

Linee vuote sparite!


18

Ecco la mia regex, cattura tutte le nuove righe extra e le righe vuote che contengono solo spazio, schede ecc

\n\s*\n

E sostituisco tutte le partite con \n

Spiegazione

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

PS: ricorda di scegliere l'opzione regex nella finestra di ricerca !!


13

Prova a utilizzare ^ \ s * \ n nella finestra di dialogo Sostituisci di VS Code -

Vedere qui


6

no, lo stai facendo bene.

Ho lo stesso comportamento qui.

Ho anche provato un altro regex: (\r?\n){2,} ma sembra che funzioni solo per linee singole.

forse c'è una preferenza per cambiare il comportamento regexp predefinito, o forse VS è semplicemente costruito in questo modo (basato sulla linea)

ovviamente non è un grosso problema tagliare e tornare da un altro editor di testo.


3
questo mi ha aiutato solo dopo aver sostituito tutto ^\s*$con vuoto, quindi ho provato(\r?\n){2,}
Mihai Popescu il

4

Non so di te, ma memorizza molti comandi per me e mi fa perdere tempo!

Usa l'estensione "Blank Line Organizer", ecco la descrizione:

Questa estensione ti aiuterà a organizzare le righe vuote nel codice rimuovendo più righe vuote. L'estensione rimuove le righe vuote solo dalle eventuali righe selezionate, altrimenti dall'intero file

Come usarlo: controlla la descrizione dell'estensione, ma è davvero bella!

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

In altre parole, dopo aver salvato il file, si pulisce automaticamente!


Ciao @Jun! Sto usando Sublime Text3 che ha risolto molti problemi, inoltre è più leggero e ha alcune belle funzionalità.
Marcelo Agimóvel,

quale plugin usi con Sublime Text3? Usavo Webstorm ed è integrato.
Jun711,

Html / CSS / JS Prettify
Marcelo Agimóvel

3

Ho trovato il seguente funziona meglio per me in Visual Studio:

Sostituisci: ^\n$ con: <no value here>

Questo troverà tutte le linee vuote e le cancellerà.


3

Nel mio caso. La soluzione kobi7 ha (\r?\n){2,}funzionato solo per me, ho dovuto eseguirla di nuovo con piccole modifiche per farlo funzionare su singole linee (appena cambiato da 2 a 1)

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

0

L' estensione della cameriera del codice è tutto ciò che serve. È possibile utilizzare la scorciatoia Ctrl M + barra spaziatrice per pulire il file, rimuoverà le righe vuote e formatterà il codice. Puoi anche configurare il formato e la regola di pulizia. Spero che sia utile.


Non trovato (su Manjaro Linux).
Marcelo Agimóvel,

2
Questo perché è un'estensione di Visual Studio non un'estensione di Visual Studio Code.
Rene Juuse,


0

Esiste la mia versione per la pulizia di linee vuote con spazi bianchi:

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

-1

Sostituisci: ^ \ n $ Con: "spazio vuoto"


e rimuovere tutti gli spazi vuoti nel tuo documento?
Arrabbiato 84

-4

Windows 10, Visual Studio 2015

Ctrl + H

Trova ... -> ^ \ s *

Sostituisci tutto

Ctrl + A

Ctrl + K + F

Grazie per la tua domanda, ho imparato qualcosa di nuovo.


5
Visual Studio 2015 non è il codice di Visual Studio.
Robert Kaucher,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.