Sublime Text 2: Comment supprimer des lignes vides / vides


272

Disons que j'avais un fichier texte avec les neuf lignes suivantes:

foo

bar

baz

qux

quux

Comment puis-je utiliser Sublime Text 2 pour supprimer les quatre lignes vides / vides, ne laissant que cinq lignes?

Réponses:


658

Sélectionnez le texte

Presse:

  • Ctrl+ Hsur PC, ou
  • Command+ Alt+ Fsur Mac ou
  • Cliquez sur Rechercher-> Remplacer.

Assurez-vous d'avoir sélectionné «expression régulière» en appuyant sur:

  • Alt+ Rsur PC ou
  • Command+ Alt+ Rsur Mac ou
  • Cliquez .*dans la zone Rechercher.

Trouver quoi: ^\n

Remplacer par: (rien, laisser en blanc).


3
Cela fonctionne, merci! Existe-t-il un moyen de lier cette recherche / remplacement à un raccourci clavier ou de l'enregistrer pour un accès rapide? Je l'ai googlé et je n'ai rien trouvé
Nick

46
Petite suggestion à utiliser ^(\r|\n\r?)pour couvrir tous les sauts de ligne possibles.
Haris Krajina

5
Pour moi (Sublime Text 2) le raccourci est (Alt + Cmd + F) puis tel que décrit par Hugp Corra
Maxence

24
Une meilleure façon de trouver toutes les lignes vides (y compris celles avec des espaces) serait: ^[\s]*?[\n\r]+
Crates

5
@Crates vous n'avez pas besoin de ?, car a *correspond également à zéro occurrence et \s*correspondra au supplément '\ r' lorsque, par exemple, éditez du texte Windows dans un environnement Linux, il en ^\s*$va de même pour l'astuce.
drevicko

67

Le regexp dans la réponse de Hugo est correct lorsqu'il n'y a pas d'espaces dans la ligne. Dans le cas où il y a regexp d'espace peut être^\s+$


32
Cela suppose qu'il y a des espaces. De plus, cela ne fonctionnera pas pour remplacer les lignes par rien. Essayez ^[\s]*?[\n\r]+plutôt. Je l'ai testé et cela fonctionne.
Caisses

24

Il existe également des plugins ST2 / ST3 pour de telles tâches. J'aime bien ces deux:

La première a deux méthodes pour supprimer les lignes vides / inutiles. L'un d'eux a appelé Delete Surplus Blank Linesce qui est cool. Il supprime uniquement les lignes qui sont suivies d'une autre ligne vide


10

Une solution Find / Replace:

Regex Find:\s+

Remplacez par: // simple espace


3
En fait, ceci: $ \ s +
kris

8

Je ne sais même pas comment ça marche, mais j'ai essayé ^\s*$et je n'ai pas marché (en laissant encore des lignes vides).

Cela ^\s*fonctionne à la place pour moi

{sublime text 3}


7

J'ai dû utiliser:

remplacer \ n ^ \ s * \ n par \ n

Le plugin https://github.com/NicholasBuse/sublime_DeleteBlankLines n'a rien fait du tout.


2
Assurez-vous de sélectionner la zone que vous souhaitez appliquer, puis utilisez les touches de raccourci respectives Windows : Ctrl + Alt + Retour arrière (Supprimer les lignes vides) Ctrl + Alt + Maj + Retour arrière (Supprimer les lignes vierges excédentaires) OSX : Ctrl + Alt + Suppr (Supprimer les lignes blanches ) Ctrl + Alt + Maj + Supprimer (Supprimer les lignes blanches) Linux : Ctrl + Alt + Retour
arrière

5

Sublime Text 2 & 3

Les commentaires de @crates fonctionnent pour moi,

Étape 1: appuyez simplement sur ctrl+H

Étape 2: appuyez sur la touche RegEX

Étape 3: écrivez ceci dans la recherche: ^[\s]*?[\n\r]+

Étape 4: remplacer tout


5

Plus simple que je ne le pensais. Ctrl+ ASuivi de Ctrl+ HPuis sélectionnez Expression régulière .*. Remplacez \n\npar \n. Voila!


3

Vous recherchez ceci:

^\n|^\s+$

il ne supprimera pas la ligne, s'il y a du contenu avec des espaces blancs ou des tabulations devant>

par exemple:

ceux-ci ne seront pas supprimés: ... espace ... abc

... onglet ... abc

cette volonté:

... l'espace ... ... rien d'autre ...

... onglet ... ... rien d'autre ...


3

Utilisation de plusieurs sélections: sélectionnez une paire de sauts de ligne, puis utilisez Recherche rapide tout ( Alt+ F3) ou Ajout rapide suivant ( Ctrl+ D) à plusieurs reprises pour les sélectionner tous; puis appuyez sur Enterpour les remplacer par des sauts de ligne simples.


1
Dans les gros documents, je trouve que ça plante Sublime.
Thalecress

3

C'est un moyen plus facile de le faire sans regex. il suffit de sélectionner tout le texte. puis allez dans: Edition -> Permuter les lignes -> Unique.

C'est tout. et toutes les lignes vides seront supprimées.


Cela supprimera TOUTES les lignes non uniques. Pas seulement des blancs. Donc, disons que vous avez du HTML avec beaucoup de lignes comme une seule fermeture </div>, il les supprimera toutes sauf la première. Ou en code, cela supprimera toutes vos fermetures}. Ce n'est pas fiable pour supprimer uniquement les lignes vides, comprenez ce que cela fait.
Ivan McA

2

Une autre façon, vous pouvez utiliser la ligne cc.dblde commande de ConyEdit (un plugin) pour supprimer des lignes vides ou des lignes vides.


1

Il y a aussi "Join lines". Si sur OSX, sélectionnez tout votre texte et appuyez sur CMD-J plusieurs fois, et il réduira votre sélection par ligne, supprimant les sauts de ligne.

Edit: Cette approche vous laissera tout sur une seule ligne, ce qui n'est pas ce que vous avez demandé.


2
Je vois où vous allez avec ce bien .. ce résultat de suggestion en faisant glisser tout le contenu en une seule ligne, mais une macro ferait ce travail: (clés OSX) ctrl-q(macro enregistrement), cmd-j(lignes de jonction), down arrow, ctrl-q(fin macro) . Puis shift-ctrl-qrépéter aussi souvent que nécessaire ...
ptim



0

Dans mon cas, certaines lignes vides contenaient l' espace de largeur nulle du caractère unicode (U + 200b). Pour supprimer les lignes vides, y compris celles avec ce caractère unicode:

\s\x{200b}|^\s

0

À l'aide de la fonction de recherche / remplacement, essayez de coller une sélection commençant à la fin de la ligne au-dessus de la ligne vide et se terminant au début de la ligne après le blanc. Cela fonctionne pour une seule ligne vierge. Vous pouvez également répéter le processus pour plusieurs lignes vides. CTRL- H, placez votre sélection dans la zone de recherche et mettez une seule nouvelle ligne dans la zone de remplacement via copier / coller ou une autre méthode.


0

Pour trouver des espaces supplémentaires et des lignes vides, appuyez sur Ctrl+ Shift+ F Sélectionnez Expressions régulières Rechercher

[\n\r]{2,}

puis remplacer par

\n

pour supprimer toutes sortes d'espaces dans sublime et dreamviewr


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.