[VIM] Remplacement, position courante

Résolu
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 :
%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.

--
Lmhelp
Configuration: Windows XP
Firefox 2.0.0.9

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    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/g
    et pour tous les motifs allant de la ligne courante à la fin du fichier, indiquer la plage :
    : .,$ s/motif/pattern/g
    Doc ;-))
    1. Ok, super, merci.
      Le $ n'indique donc pas la fin de la ligne mais la dernière ligne du fichier.
      Merci et bonne soirée.
      1. Modérateur
        Le $ n'indique donc pas la fin de la ligne mais la dernière ligne du fichier.
        Dans une plage d'adresse uniquement...
    2. Modérateur
      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.
      1. De la doc. conseillée par jipicy :
        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.
        1. STOP !!!
          Attends, je n'avais pas vu que tu me donnais un lien sur la doc.
          Je regarde ça.
          Merci !
          1. Super !
            Merci beaucoup.
            La dernière commande est celle qui répond à mon problème.

            Pourrais-tu m'expliquer ce que signifient alors :
            %s
            dans
            :%s/motif_1/motif_2/gc
            et
            .,$s
            dans
            :.,$s/motif/pattern/g

            "s" pour "substitute" ?
            % ?
            .,$ ?

            Merci encore de m'avoir répondu.