En recherchant, j'ai mis en surbrillance la chaîne que je souhaite modifier. Maintenant, je veux remplacer uniquement le texte en surbrillance. J'utilise n
pour passer à l'instance suivante de la chaîne de recherche. Je pensais que je pouvais faire quelque chose comme ciw
ça, mais cela change tout le mot, pas seulement le texte en surbrillance.
Je connais bien, :%s/old/new/g
mais je ne veux pas changer toutes les instances. Au lieu de cela, je veux avancer mon curseur sur chaque instance, puis décider de le modifier.
gn
, alors voici une méthode similaire que je viens de découvrir:c//e<CR>FooBar<Esc>//<CR>
:%s/oldtext/newstuff/g
changera toutes les correspondancesoldtext
ennewstuff
..
plusieurs fois, je peux utiliser:%norm .
( source ).Si vous avez déjà recherché un mot avec
/word
ou?word
.Vous pouvez utiliser
:%s//newword/gc
pour remplacer le mot que vous avez précédemment recherché parnewword
, en laissant le terme de recherche (s//..
) vide.Le
c
drapeau indique que chaque changement doit être confirmé, en appuyanty
pour oui oun
pour non.Jetez un œil à
:help :s_flags
pour plus d'informations sur le drapeau de confirmation.la source
l
,a
etq
(ou<Esc>
) pour diverses façons de conclure le cycle de confirmation.Méthode n ° 1
Vous pouvez profiter des mappages
gn
etgN
pour accomplir ce que vous voulez.gn
recherchera le dernier terme de recherche utilisé et sélectionnera visuellement la correspondance.gN
fait exactement la même chose, sauf qu'il recherche en arrière. Lorsqu'il est combiné avec un opérateur tel quec
, l'opérateur sera appliqué à la correspondance. Par exemple, si votre dernière chaîne de recherche est "foo" et que vous tapezcgn
, il recherchera vers l'avant la prochaine instance de "foo", la supprimera et vous mettre en mode insertion pour saisir le texte de remplacement.Pour plus d'informations à ce sujet, voir
:help gn
et:help gN
.Méthode n ° 2
Vous pouvez utiliser la
:substitute
commande avec lec
drapeau. Cela vous demandera de confirmer chaque substitution. Par exemple, supposons que vous vouliez remplacer foo par bar dans tout le fichier, mais que vous vouliez confirmer chaque remplacement:Pour en savoir plus, consultez les rubriques d'aide:
:help :s_flags
,:help cmdline-ranges
et:help :substitute
.la source