[VIM] Remplacement, position courante
Résolu
lmhelp
Messages postés
78
Date d'inscription
Statut
Membre
Dernière intervention
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Ma question concerne le remplacement d'un motif "motif_1" par un autre motif "motif_2" dans "VIM".
La commande que j'utilise est :
Seulement, le remplacement démarre au début du fichier.
Connaissez-vous une option permettant que celui-ci démarre à la position courante du curseur ?
J'espère que ma question est claire :)
Merci par avance pour votre aide.
Ma question concerne le remplacement d'un motif "motif_1" par un autre motif "motif_2" dans "VIM".
La commande que j'utilise est :
%s/motif_1/motif_2/gc
Seulement, le remplacement démarre au début du fichier.
Connaissez-vous une option permettant que celui-ci démarre à la position courante du curseur ?
J'espère que ma question est claire :)
Merci par avance pour votre aide.
A voir également:
- Vim rechercher
- Rechercher ou entrer l'adresse - Guide
- Rechercher image - Guide
- Rechercher remplacer word - Guide
- Rechercher une chanson - Guide
- Adresse IP locale : comment la trouver facilement - Guide
6 réponses
Salut,
Pour remplacer uniquement le 1er motif de la ligne courante, faire précéder la commande par un point :
Pour remplacer uniquement le 1er motif de la ligne courante, faire précéder la commande par un point :
: . s/motif/pattern/pour tous les motifs de la ligne courante ajouter un "g" :
: . s/motif/pattern/get pour tous les motifs allant de la ligne courante à la fin du fichier, indiquer la plage :
: .,$ s/motif/pattern/gDoc ;-))
Le point (.) indique donc la ligne courante.
La virgule (,) est employée comme séparateur.
le dollar ($) dans une plage d'adresse, indique la fin du fichier, en réalité la dernière ligne.
Donc dans la plage ".,$" on demande de faire un remplacement depuis la ligne courante jusqu'à la fin du fichier.
Si tu veux désigner une autre plage d'adresse, il suffit de remplacer le "$" par le numéro de ligne correspondant.
La virgule (,) est employée comme séparateur.
le dollar ($) dans une plage d'adresse, indique la fin du fichier, en réalité la dernière ligne.
Donc dans la plage ".,$" on demande de faire un remplacement depuis la ligne courante jusqu'à la fin du fichier.
Si tu veux désigner une autre plage d'adresse, il suffit de remplacer le "$" par le numéro de ligne correspondant.
Super !
Merci beaucoup.
La dernière commande est celle qui répond à mon problème.
Pourrais-tu m'expliquer ce que signifient alors :
Merci encore de m'avoir répondu.
Merci beaucoup.
La dernière commande est celle qui répond à mon problème.
Pourrais-tu m'expliquer ce que signifient alors :
%sdans
:%s/motif_1/motif_2/gcet
.,$sdans
:.,$s/motif/pattern/g
"s" pour "substitute" ? % ? .,$ ?
Merci encore de m'avoir répondu.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
De la doc. conseillée par jipicy :
Mais euhhh, je veux bien une petite explication sur ".,$" si possible ?
Merci.
La plage '%' indique que l'expression doit être remplacée dans toutes les lignes.
Mais euhhh, je veux bien une petite explication sur ".,$" si possible ?
Merci.