Y a-t-il un contraire de: g in vim?


10

Je sais comment faire quelque chose pour chaque ligne qui correspond à un modèle, en utilisant :g. Existe-t-il un moyen de faire quelque chose pour chaque ligne qui ne correspond pas au modèle?

Par exemple, supposons que je souhaite supprimer toutes les lignes qui ne correspondent pas à / foo /. Je pourrais faire quelque chose comme:

:G/foo/d

( :Gn'est pas l'opposé de :g, mais c'est ce que je recherche)

Des idées?


2
miv ni g:.
tsilb

Réponses:


17

Je pense qu'il y a une inversion au sein de VIM comme,

:g!/foo/d

ou, comme la grepcommande (ci-dessous),

:v/foo/d

Si vous êtes prêt à accéder à l'invite du shell,

grep -v foo filename.txt > new.txt

va faire ça

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.