web-dev-qa-db-fra.com

Comment supprimer toutes les lignes correspondant à un motif et une ligne après dans Vim?

Il y a un texte

Title of the text

This line contains a Word that is matched by the pattern and it should be deleted.
Next line is supposed to be deleted as well.

Loren ipsum dolorem...

This line contains a Word that is matched by the pattern and it should be deleted.
And this one should be deleted

The end of the article

Comment supprimer chaque paire de lignes correspondant à la première ligne, par exemple "Cette ligne contient un mot ..." et la ligne qui suit. Le résultat serait:

Title of the text

Loren ipsum dolorem...

The end of the article
26
Boris Pavlović

Vous pouvez utiliser

:g/Word/normal 2dd

Cela trouve toutes les instances de Word, puis exécute la commande après celle-ci. Dans ce cas, il exécute 2dd en mode normal

45
FDinoff

Utilisez :g[lobal] avec une commande d[elete] avec une plage ,+1 pour supprimer la ligne correspondante et la suivante:

:g/Word/,+1d
20
Pavel Anossov

Vous pouvez utiliser la commande :g[lobal]:

:g/This line/norm 3dd
4
romainl

une autre façon avec: g

:g/Word/norm dj
2
Kent

Vous voudrez peut-être essayer ceci:

:g/your pattern go here/d
0
Thanh Nguyen