Joseph Tux
VIM : Astuces en vrac et memento

Regex, caractères de contrôle

dimanche 7 juin 2009

Astuces et memento VIM

^M

Dans .vimrc :

set fileformats=dos,unix (évite les ’^M’ de fin de lignes )

 :% s/CTRL-v CTRL-m/\r/g remplace tous les ’^M’ par des sauts de ligne

voir aussi ^M

Car.CTRL

CARACTÈRE DE CONTRÔLE :

- Dépendants de la machine :

  • \a alarme
  • \f saut de page ( form feed ) [imprimante]
  • \e échappement ( esc )
  • \n nouvelle ligne (newline)
  • \r retour chariot ( carriage return )
  • \b espace inverse ( backspace ) [seulement dans les classes]
  • \t tabulation

Classes courantes :

  • \d chiffres
  • \s espace [ \f\n\r\t]
  • \w constituant de mots : [a-zA-Z0-9 et caractères accentués]
  • .
  • \D \S \W en sont les compléments

Notification d’octets :

  • \num = caractère en octal
  • \xnum = caractère en héxadécimal
  • \c char = caractère de contrôle

__ornement_vert.png__

Regex

REGEX vim

Utiliser la variable \1 et créer une nouvelle ligne [1]

  • Pour ajouter , dans une feuille html d’une image clicable ( <map name= xx> ) - créée par GIMP - l’attibut title=« Le texte de l’attribut obligatoire alt », [2]
    :% s/alt=\("[^"]*"\)/alt=\1 title=\1/g

Exemple :

La ligne suivante :

<area shape="poly" coords="647,263,732,252,732,319,751,347,732,384,670,396"

alt="Plan h&ocirc;pital de jour enfant: modelage et peinture"

target="Modelage_peinture"
href="PLAN_HJ_2009/E_Modelage_50pc.jpeg"
/>

devient :

<area shape="poly" coords="647,263,732,252,732,319,751,347,732,384,670,396"

alt="Plan h&ocirc;pital de jour enfant: modelage et peinture"
title="Plan h&ocirc;pital de jour enfant: modelage et peinture"

target="Modelage_peinture"
href="PLAN_HJ_2009/E_Modelage_50pc.jpeg"
/>

Substitutions

DIVERSES SUBSTITUTIONS SOUS vim :

=> Remarques spécifiques à vim ( ou non )


Ajouter « rm » au début des lignes se terminant par « .bkp » :

 :% s/^\(.*\).bkp$/rm \1.bkp/


=> \ devant les parenthèses (captures) ; \1 = 1re capture


Supprimer les lignes vides :

 :% s/^\n//


=> remplacer fin de ligne ($) par retour-à-la-ligne (\n)

:g/^$/d


=> Avec g/ : On peut appliquer une commande (d) à une ligne sélectionnée ! [3]



Supprimer les lignes blanches ou vides :

 :% s/^[ [:space :]]*\n//g


=> Pas de \ devant [] ( classes) ; /g pour les blancs multiples ; [:space :]* mieux que :

:% s/^[^I ]\n//g


=> Pas de \ devant [] ( classes) ; /g pour les blancs multiples ; « ^I » : créé par la touche tab


:% g/^[^I ]/d

=> Avec g/ : On peut appliquer une commande (d) à une ligne sélectionnée !


Supprimer les lignes contenant une regex


:% g/regex/d

=> Avec g/ : On peut appliquer une commande (d) à une ligne sélectionnée !


  • Moteur NFA traditionnel = comme perl
    • Retours arrières = 9 maximum (Perl : illimité )
    • vim , egrep : \1 à \9
    • ( perl : $1 à $99 )
  • & représente la chaine de recherche -ou regex- : c’est différent de la capture entre parenthèses \( \) qui représente la chaine trouvée (\1 à \9)

HTML

Pour coder en html les caractères accentués :

:% s/[ê]/\&ecirc;/g
  1. mettre en classe de caractère unique le caractère accentué.
  2. échapper par un anti-slash « \ » le caractère esperluète « & »

[1The GIMP ne met pas cet attribut dans le code qu’il crée

[2à l’intérieur d’une balise <area ... />

[3g/recherche/ sélectionne les lignes, la suite s’applique à chaque ligne


Accueil | Contact | Plan du site | | Statistiques du site | Visiteurs : 92 / 59538

Suivre la vie du site fr  Suivre la vie du site GNU, LINUX, BSD, LL  Suivre la vie du site AIDES GNU/LINUX  Suivre la vie du site VIM et sed   ?

Site réalisé avec SPIP 3.1.6 + AHUNTSIC

Creative Commons License