Comment substituer sur plusieurs lignes?


10

Je voudrais insérer un mot sur plusieurs lignes, y a-t-il une commande comme

:[2,3,5,7,11]s/^/word\ /g

qui insérerait wordau début des lignes 2, 3, 5, 7 et 11?

Ici, plusieurs lignes ne sont pas contiguës.

Réponses:


16

Effectuer une substitution sur plusieurs lignes consécutives est assez simple:

:2,11s/^/word /

mais une plage ne peut pas couvrir des lignes non consécutives.

Cependant, avec un peu de créativité, il est tout à fait possible de contourner cette "limitation".

En effet, vous pouvez répéter la dernière substitution avec :&ou :&&(la première ne conservera pas les drapeaux d'origine, la seconde le fera) afin de pouvoir enchaîner assez facilement les substitutions:

2s/^/word /|3&|5&|7&|11&

Voir :help :&et faire défiler pour :&&.

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.