Sous Vi quand on appuie sur :
on a la ligne de commande
Tout le monde connaît
1 2 |
|
Mais en pratique il existe plein de commandes.
Par exemple :
1
|
|
efface la ligne 1 à 10 (d
= delete)
1
|
|
bouge les lignes de 1 à 10 de 10 ligne (ici m
= move)
le “pattern” est toujours le même
1
|
|
mouvements | traduction |
---|---|
1,10 |
entre la ligne 1 et la ligne 1 à 10 |
.,10 |
. signifie la ligne actuelle |
10,$ |
$ signifie la dernière ligne |
/mot1/,/mot2/ |
entre le mot1 et le mot2 |
., +5 |
entre la ligne actuelle (. ) et les 5 lignes suivantes |
% |
tout le fichier |
quelques actions
racourcci | traduction |
---|---|
d |
comme delete |
j |
comme join |
sort |
trier (sort) les lignes |
w |
pour enregistrer |
y |
comme yank |
le plus connu substitute
vous avez souvent vu cette syntaxe dans les commits s/mot1/mot2
ici s
signifie substitute.
par exemple
1
|
|
va remplacer le mot 1 par le mot 2
le g
active le flag global
et remplace si le mot apparait deux fois.
par exemple
1 2 3 4 5 6 7 |
|
Encore un peu plus loin
la commande suivante permet de grouper les mots
1
|
|
g
ici signifie group
On peut chaîner les differentes actions par exemple
1 2 3 4 5 |
|
la derniere ligne est la plus connue. pattern est le plus souvent une regex donc la traduction g/regex/p
->donne la commande grep
sous linux.
en faite, toutes les commandes que j’ai données proviennent de sed
. mais ce n’est pas un hasard. vi
est l’abbreviation de Visual Interaction of Sed. un sed interactif.
J’espère que cela vous fera apprecier sed
comme vi
. on peut rester très longtemps sur toutes les commandes.
j’avais expliqué dans un précédent articles les mouvements en mode normal sont
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Il me reste à vous parler des buffers et des macros. et on aura presque fait le tour de la magie de vi
.
une commande de la vrai vie
1
|
|
sur tout le fichier (%
) remplace(s
) un ou plus(+
) espaces (\s
) à la fin de la ligne ($
) par du vide. cette commande supprime les espaces vides à la fin des lignes..