Je vois comment rechercher et remplacer dans des lignes spécifiques , en spécifiant par numéro de ligne, et comment rechercher et remplacer en utilisant la ligne actuelle comme référence à un certain nombre de lignes vers le bas .
Comment rechercher et remplacer uniquement dans la ligne actuelle? Je recherche une solution simple qui n'implique pas de spécifier des numéros de ligne comme le font les solutions liées .
Remplacez toutes les occurrences de str1
avec str2
dans une certaine ligne:
:s/str1/str2/g
supprimez l'option g
si vous souhaitez remplacer uniquement la première occurrence.
Vous pouvez utiliser .
pour la ligne actuelle, comme:
:.s/old/new/
Cela changera old
par new
dans la ligne actuelle uniquement.
Si vous souhaitez rechercher et remplacer tout le mot correspondant dans la ligne actuelle, vous pouvez facilement utiliser le simple substitute (s)
avec le modificateur g
en mode commande.
:s/search/replace/g
Si vous souhaitez simplement rechercher et remplacer le premier mot correspondant dans la ligne actuelle, éloignez simplement le modificateur g
de votre commande.
:s/search/replace/
Réf: :help substitute
Confirmer ('c') et remplacer:
:s/foo/bar/gc
Trouvez l'occurrence de 'foo', et avant de le remplacer par 'bar', demandez confirmation.
Vim vous offre ces options:
replace with bar (y/n/a/q/l/^E/^Y)?
o/n - explicite
a - remplacer toutes les occurrences
q - quitter
l - remplacer le courant et arrêter (dernier)
^ E/^ Y - ctrl + e et ctrl + y - faites défiler vers le bas et vers le haut respectivement.
Maintenant, dans votre cas, vous pouvez utiliser la combinaison de y, n et l pour atteindre votre objectif.