Comment supprimer toutes les lignes qui ne contiennent pas un certain mot dans Vim?


116

Dans vim, je peux supprimer toutes les lignes contenant le mot "price" avec cette

:g /price/d

Comment puis-je supprimer toutes les lignes qui ne contiennent pas le mot "price"?


1
Cette question peut-elle être migrée vers vi.stackexchange.com ? J'ai essayé de le signaler pour la migration mais je ne pouvais pas le comprendre.
Mu Mind

@MuMind C'est sur le sujet ici, donc pas besoin de migrer . " Ne migrez pas pour des raisons de migration. Nous migrons les questions uniquement parce qu'elles sont hors sujet sur le site d'origine . Il est parfaitement possible qu'une question soit sur le sujet sur plusieurs sites, mais ce n'est pas une raison pour migrer ailleurs, sauf si le PO demande la migration. " En outre, seuls les employés SE peuvent migrer après 60 jours et il est très rare qu'ils le fassent (même les modérateurs ne peuvent migrer une vieille question).
8bittree

Réponses:


158

Vous pouvez utiliser

:%g!/price/d

supprimer toutes les lignes qui ne contiennent pas "price"


3
Je savais que ce serait facile ...
digitaljoel

35
:g!est également connu sous le nom de :v(apparenté à grep -v).
Chris Johnsen

3
Qu'est-ce que le %fait?
hippietrail

4
%est une plage spéciale dans ce contexte qui signifie le fichier entier. Voir :help cmdline-ranges.
Heptite

1
%est facultatif car la plage par défaut est la totalité du tampon.
stillanoob


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.