Question Vim supprimer des lignes vides


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


596
2018-04-01 15:34


origine


Réponses:


:g/^$/d

:g exécutera une commande sur les lignes qui correspondent à une regex. L'expression rationnelle est 'ligne vide' et la commande est :d (effacer)


1086
2018-04-01 15:36



Je l'ai trouvé, c'est:

g/^\s*$/d

La source: Le pouvoir de g à vim wikia


165
2018-04-01 15:35



:v/./d

ou

:g/^$/d

ou

:%!cat -s

46
2018-04-01 15:36



Les éléments suivants peuvent être utilisés pour supprimer uniquement plusieurs lignes vierges (les réduire en une seule ligne vide) et laisser des lignes vierges intactes:

:g/^\_$\n\_^$/d

40
2018-04-07 14:52



  1. comment enlever toutes les lignes vides

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

    (faites ceci plusieurs fois util toutes les lignes vides allé allé)

  2. comment supprimer toutes les lignes vides laissant SINGLE ligne vide

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

    (Faites ceci plusieurs fois)

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

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

    (Faites ceci plusieurs fois)

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


12
2017-10-26 07:12



Que diriez-vous:

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

6
2018-04-01 15:38



travailler avec perl dans vim:

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


5
2018-05-01 13:17



Cela fonctionne pour moi

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


5
2018-02-28 16:34



Cette fonction supprime uniquement deux ou plusieurs lignes vides, placez les lignes ci-dessous dans votre vimrc, puis utilisez \ 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 <special> <leader>d :keepjumps call DelBlank()<cr>

5
2018-05-01 20:10



J'ai essayé quelques-unes des réponses sur cette page, mais beaucoup d'entre eux n'ont pas fonctionné pour moi. Peut-être parce que j'utilise Vim sur Windows 7 (ne vous moquez pas, ayez pitié de moi: p)?

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

:v/\S/d

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


4
2018-04-07 16:26



: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 :<line1>,<line2>g/^\s*$/d

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


3
2018-04-30 06:56