Vim supprimer des lignes vierges

Quelle commande puis-je exécuter pour supprimer les lignes vides dans Vim?

:g/^$/d 

:g exécutera une commande sur les lignes correspondant à une expression régulière. Le regex est ‘ligne vide’ et la commande est :d (supprimer)

Je l’ai trouvé, c’est:

 g/^\s*$/d 

Source: Puissance de g chez vim wikia

 :v/./d 

ou

 :g/^$/d 

ou

 :%!cat -s 

Les éléments suivants peuvent être utilisés pour supprimer uniquement les lignes multi-blancs (réduisez-les en une seule ligne vide) et en laissant intactes les lignes vierges:

 :g/^\_$\n\_^$/d 
  1. comment supprimer toutes les lignes vides

     :%s,\n\n,^M,g 

    (Est-ce que cela fait plusieurs fois que toutes les lignes vides ont disparu)

  2. comment supprimer toutes les lignes vides en laissant une seule ligne vide

     :%s,\n\n\n,^M^M,g 

    (Faites cela plusieurs fois)

  3. comment supprimer toutes les lignes vides laissant DEUX lignes vides A MAXIMUM,

     :%s,\n\n\n\n,^M^M^M,g 

    (Faites cela plusieurs fois)

pour entrer ^ M, je dois contrôler-Q et contrôler-M dans Windows

Que diriez-vous:

 :g/^[ \t]*$/d 

travailler avec perl in vim:

:%!perl -pi -es/^\s*$//g

Cela fonctionne pour moi

:%s/^\s*$\n//gc

Cette fonction ne supprime que deux ou plusieurs lignes vides, place les lignes ci-dessous dans votre vimrc, puis utilise \ d pour appeler la fonction

 fun! DelBlank() let _s=@/ let l = line(".") let c = col(".") :g/^\n\{2,}/d let @/=_s call cursor(l, c) endfun map  d :keepjumps call DelBlank() 

J’ai essayé quelques-unes des réponses sur cette page, mais beaucoup d’entre elles ne fonctionnaient pas pour moi. Peut-être parce que j’utilise Vim sur Windows 7 (ne vous méprenez pas, ayez juste pitié de moi: p)?

Voici le plus simple que j’ai trouvé qui fonctionne sur Vim sous Windows 7:

 :v/\S/d 

Voici une réponse plus longue sur le Vim Wikia: http://vim.wikia.com/wiki/Remove_unwanted_empty_lines

 :g/^\s*$/d ^ begin of a line \s* at least 0 spaces and as many as possible (greedy) $ end of a line 

coller

 :command -range=% DBL :,g/^\s*$/d 

dans votre .vimrc, puis redémarrez votre vim. Si vous utilisez la commande: 5,12DBL, toutes les lignes vides entre la 5ème ligne et la 12ème ligne seront supprimées. Je pense que ma réponse est la meilleure réponse!

Si quelque chose a un double trait dans votre texte, cette commande supprime le double espacement et fusionne les lignes vides répétitives préexistantes en une seule ligne vide. Il utilise un délimiteur temporaire de ^^^ au début d’une ligne, donc si cela entre en conflit avec votre contenu, choisissez autre chose. Les lignes ne contenant que des espaces sont considérées comme vides.

 %s/^\s*\n\n\+/^^^\r/g | g/^\s*$/d | %s/^^^^.* 

Cela a fonctionné pour moi:

 :%s/^[^a-zA-Z0-9]$\n//ig 

Il supprime fondamentalement toutes les lignes qui n’ont pas de numéro ou de lettre. Comme tous les éléments de ma liste avaient des lettres, toutes les lignes vides étaient supprimées.

Appuyez sur la touche Suppr en mode insertion pour supprimer les lignes vides.