web-dev-qa-db-fra.com

Vim recherche un modèle et s'il se produit, supprime jusqu'à la fin de la ligne

J'essaie de rechercher un certain modèle dans un fichier texte. Si ce modèle se produit, cela signifie que le reste de la ligne n'est pas nécessaire et peut donc être supprimé.

J'ai essayé d'utiliser les commandes suivantes, mais jusqu'à présent, j'ai échoué.

:%s/{pattern}/d$

:g/{pattern}/d$

Si quelqu'un a des suggestions, il serait grandement apprécié

39
smauel

aurait :%s/{pattern}.*// travail?

65
mirod

Alternativement, ce qui suit fonctionne également

:g/{pattern}/normal nd$

Pour ce que vous voulez, j'irais avec la suggestion de mirod. Ce que j'ai publié est un peu plus flexible et pourrait être utile dans des situations similaires.

Explication:

Sur chaque ligne, où le modèle correspond, exécutez les commandes de mode normal suivantes "nd $". Avec le curseur au début de la ligne, "n" saute au motif et "d $" supprime jusqu'à la fin de la ligne.

34
user55400

Pour remplacer un motif et quoi que ce soit d'autre, utilisez le caractère générique d'expression régulière .*

:1,$s/pattern.*//g
3
user8618720