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..