Visual Studio Code - supprimer toutes les lignes vides - regex

133

J'ai passé du temps à essayer de comprendre comment supprimer toutes les lignes vides dans Visual Studio Code et je n'arrive pas à le faire fonctionner. Quelqu'un sait comment le faire s'il vous plaît?

Si je recherche ^$en le tapant dans le champ de recherche, VSC trouve les lignes vides (lignes complètement vides, signifie pas d'espaces blancs) mais il ne les supprime pas lorsque je clique sur Remplacer tout. Cela ne fait rien: ^ $

Pour les lignes vides avec des espaces, la ^\s+$recherche fonctionne, mais ne les supprime pas. Ce qu'il fait, c'est qu'il les remplace par une ligne vide sans espaces :)) ^ \ s + $

Ce doit être que je fais quelque chose de mal. Je n'arrive tout simplement pas à comprendre ce que c'est. Quelqu'un sait-il? Merci.

Jozefk
la source
1
J'ai ajouté un commentaire sur le problème que vous avez ouvert à ce sujet, mais pour quiconque d'autre, $ne correspond pas au caractère de nouvelle ligne, il correspond à un jeton de largeur zéro qui existe avant le caractère de nouvelle ligne. Pour remplacer une nouvelle ligne, vous devez utiliser \nmais VS Code ne prend actuellement pas en charge les correspondances de regex multiligne ( # 313 )
Marie
Merci Marie. Il semble que nous devions attendre un moment.
jozefk
4
Trouvez ceci en mode regex ^ $ \ n et remplacez-le par un blanc fonctionnera également correctement. Bon codage !!!
sajal rajabhoj
Étape facile: stackoverflow.com/a/50042582/6597375
Deepu Reghunath

Réponses:

195

Pour ceux qui pourraient être intéressés - ce qui a fonctionné pour moi dans la version 1.3.1 (et fonctionne toujours dans 1.33.1) pour supprimer les lignes vides que j'ai utilisées ctrl+ h(rechercher et remplacer) alt+ r(utiliser une expression régulière)

Dans la boîte de recherche alors:

\n\n

Dans la boîte de remplacement:

\n

Cela devrait faire deux signes de fin de ligne consécutifs en un seul.

édité:

Si vous devez remplacer plusieurs lignes vides (plus de deux) à la fois, vous pouvez utiliser l'expression régulière suivante dans la zone de recherche:

\n+

Si vous devez remplacer également les lignes vides par des espaces, vous devez utiliser l'expression régulière suivante dans la zone de recherche:

\n+\s*\n

Le code VS utilise des expressions régulières javascript

teloss
la source
10
Dans ce sens, j'utilise^[\r\n]{3,}
RJ Cuthbertson
Ça marche maintenant. Merci :) Beaucoup de versions de VSC entre les deux, mais ça va. Remplacer \ n \ n par \ n a bien fonctionné.
jozefk
Regardez également la solution @Dzumret ci-dessous. Dans ma solution, il ne supprime que les lignes où il n'y a rien. Sa solution supprime les lignes où il y a aussi des espaces blancs (espaces, tabulations)
exemple,
Cette réponse ne prend pas tous les cas, que se passe-t-il si vous avez des espaces dans la ligne vide
dhaker
1
Génial! Pour supprimer plus d'une ligne vide consécutive, j'ai remplacé \ n + par \ n. Pour accepter les espaces aussi remplacer (^ \ s * \ n) + avec rien
Ilario
115

Ce qui fonctionne également, c'est ce modèle d'expression régulière:

^\s*$\n

Ensuite, CTRL+Enterpour remplacer toutes les lignes.

Explication du modèle ci-dessus:

-----------------------------------------------
|  ^ | beginning of string anchor             |
-----------------------------------------------
| \s | any whitespace character               |
-----------------------------------------------
| '*'| zero or more repetitions               |
-----------------------------------------------
|  $ | end of string anchor                   |
-----------------------------------------------
| \n | new line                               |
-----------------------------------------------
Dzumret
la source
Pas sûr, mais seulement cela a fonctionné pour moi, comparez à toutes les autres réponses. Bien expliqué aussi. Je vous remercie.
Sai
Placer l' \nextérieur des ancres est ce qui a fonctionné pour moi. VSCode a alors permis de le remplacer par rien (champ vide «remplacer par»).
Eric
46

Visual Studio Code 1.13.0 Linux Lite:

  • Frappé CTRL +H
  • Sélectionnez "Utiliser une expression régulière"
  • Boîte de recherche: ^ (\ s) * $ \ n (entrez plusieurs fins \ n selon vos besoins)
  • Remplacer la boîte: vide
  • Cliquez sur tout remplacer

Les lignes vides ont disparu!

Antonio Delgado
la source
18

Voici mon regex, il attrape toutes les nouvelles lignes supplémentaires et les lignes vides qui ne contiennent que de l'espace, des onglets, etc.

\n\s*\n

Et je remplace tous les matchs par \n

Explication

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

PS: N'oubliez pas de choisir l'option regex dans la fenêtre de recherche !!

Shabin Muhammed
la source
13

Essayez d'utiliser ^ \ s * \ n dans la boîte de dialogue Remplacer de VS Code -

vois ici

NÉO
la source
6

non, vous le faites bien.

J'ai le même comportement ici.

J'ai aussi essayé une autre regex: (\r?\n){2,} mais il semble que cela ne fonctionne que pour les lignes simples.

peut-être qu'il y a une préférence pour changer le comportement par défaut de l'expression rationnelle, ou peut-être que VS est simplement construit de cette manière (basé sur une ligne)

bien sûr, ce n'est pas un gros problème de copier-coller et revenir d'un autre éditeur de texte.

kobi7
la source
3
cela ne m'a aidé qu'après avoir tout remplacé ^\s*$par vide, puis j'ai essayé(\r?\n){2,}
Mihai Popescu
4

Je ne sais pas pour vous, mais mémoriser beaucoup de commandes pour moi, c'est une perte de temps!

Utilisez l'extension "Blank Line Organizer", voici la description:

Cette extension vous aidera à organiser les lignes vierges dans le code en supprimant plusieurs lignes vides. L'extension supprime les lignes vierges uniquement des lignes sélectionnées le cas échéant, sinon de l'ensemble du fichier

Comment l'utiliser: vérifiez la description de l'extension, mais cela semble vraiment sympa!

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

En d'autres termes, après avoir enregistré le fichier, il nettoie automatiquement!

Marcelo Agimóvel
la source
Salut @Jun! J'utilise Sublime Text3 qui a résolu beaucoup de problèmes, est plus léger et a quelques fonctionnalités intéressantes.
Marcelo Agimóvel
quel plugin utilisez-vous avec Sublime Text3? J'utilisais Webstorm et il est intégré.
Jun711
Html / CSS / JS Prettify
Marcelo Agimóvel
3

J'ai trouvé que ce qui suit fonctionne le mieux pour moi dans Visual Studio:

Remplacer: Par ^\n$ : <no value here>

Cela trouvera toutes les lignes vides et les effacera.

Alan
la source
3

À mon cas. La solution kobi7 (\r?\n){2,}n'a fonctionné que pour moi, j'ai dû l'exécuter à nouveau avec une petite modification pour la faire fonctionner pour les lignes simples (juste changé 2 en 1)

^(\r?\n){1,}
Mamdouh
la source
0

Code Maid Extension est tout ce dont vous avez besoin. Vous pouvez utiliser le raccourci Ctrl M + Barre d'espace pour nettoyer votre fichier, cela supprimera les lignes vides et formatera votre code. Vous pouvez également configurer le format et la règle de nettoyage. J'espère que cela sera utile.

Haut Nguyễn
la source
Non trouvé (sur Manjaro Linux).
Marcelo Agimóvel
2
C'est parce qu'il s'agit d'une extension Visual Studio et non d'une extension Visual Studio Code.
René Juuse
0

Un ou plusieurs sauts de ligne (\ n) + et remplacer par \ n

Hector Matias Gonzalez
la source
0

Il existe ma version pour nettoyer les lignes vides avec un espace blanc:

find:    (?:\s*$(\r?\n)){2,}
replace: $1
Artur Paszek
la source
-1

Remplacer: ^ \ n $ Par: "espace vide"


la source
et supprimer tous les espaces vides de votre document?
Angry 84
-4

Windows 10, Visual Studio 2015

Ctrl + H

Rechercher ... -> ^ \ s *

Remplace tout

Ctrl + A

Ctrl + K + F

Merci pour votre question, j'ai appris quelque chose de nouveau.

le nom n'a pas d'importance
la source
5
Visual Studio 2015 n'est pas Visual Studio Code.
Robert Kaucher