web-dev-qa-db-fra.com

Rechercher et remplacer dans la sélection dans `vi`

Comment faire une recherche et un remplacement dans une sélection dans vi?

59
Agnel Kurian

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)

68
Chad Birch

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.

81
Brad Parks

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.

17
Tomalak
7
Lazarus