Comment faire une recherche et un remplacement dans une sélection dans vi
?
Sélectionnez le texte en mode visuel (je suppose que c'est ce que vous faites), puis appuyez sur :
pour commencer à taper une commande, vous verrez quelque chose comme ceci apparaître dans la ligne de commande:
:'<,'>
Cela signifie que la commande s'appliquera à la sélection. Tapez ensuite s/search/replace/
et appuyez sur Entrée. (Ajoutez un g
après la troisième barre oblique si vous voulez remplacer toutes les correspondances, et un c
si vous voulez une confirmation pour chaque remplacement)
La plupart des autres solutions suggérées ici fonctionnent sur la ligne ENTIÈRE dans laquelle la sélection a lieu, ce qui peut ne pas être ce que vous voulez.
Pour rechercher et remplacer UNIQUEMENT dans la sélection, sélectionnez d'abord visuellement le texte, puis utilisez une commande comme celle-ci:
:%s/\%VSEARCH/REPLACE/g
Cela effectuera la recherche et le remplacement uniquement dans la section sélectionnée visuellement, en remplaçant SEARCH par REPLACE. Si vous avez sélectionné plusieurs lignes, cela fonctionnera également sur plusieurs lignes.
Si vous avez utilisé le mode visuel pour sélectionner, alors:
:'<,'>s/regex/replacement/options
VIM placera la plage ('<,'>
) automatiquement si vous passez en mode ligne de commande (en appuyant sur ':'
) à partir du mode visuel.
Un peu plus d'aide ici Rechercher et remplacer dans une sélection visuelle