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?

pseudo
la source

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).

Hugo Corrá
la source
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+$

chenille
la source
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

V-Light
la source
10

Une solution Find / Replace:

Regex Find:\s+

Remplacez par: // simple espace

Usersbs
la source
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}

abdos
la source
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.

Bruce Edge
la source
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

rsc05
la source
5

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

Samuel Wahome
la source
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 ...

Brian Joseph Spinos
la source
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.

deltab
la source
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.

Dihia LANASRI
la source
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.

Queue
la source
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é.

Donncha
la source
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
1

Pour ceux qui sont curieux de sublime éditeur de texte, la documentation non officielle peut être intéressante!

herve
la source
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
MetalGodwin
la source
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.

Clayton Loudon
la source
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

Naeem Ijaz
la source
-1

Si ^\nne fonctionne pas correctement ===> essayez .*[^\w]\n

yuxin Zhang
la source