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.