L'éditeur VI

L'éditeur Unix par défaut se nomme vi(visual editor). S'il n'est pas des plus ergonomiques comparé à des éditeurs en mode graphique, il a l'avantage d'utiliser la même syntaxe de base sur tous les Unix et d'être connu comme étant un éditeur de texte très puissant. Chaque Unix propose généralement une syntaxe étendue au-delà de la syntaxe de base. Pour en connaître les détails : man vi

Commande de saisie

Commande Description
a Ajout de texte derrière le carractère actif
A Ajout de texte en fin de ligne
i Insertion de texte devant le carractère actif
I insertion d'une nouvelle ligne
o insersion d'une nouvelle ligne sous la ligne actif
O Insertion d'une nouvelle ligne au dessus de la ligne actif

Commande pour quitter VI

Commande Description
:q Quitter si le fichier n'a pas été modifié
:q! Quitter sans enregistrer
:w Enregistrer les modifications sans quitter
:wq Quitter en enregistrant les modifications
:wqa Enregistrer tous les buffers modifiés et quitter
zz Quitter et sauvegarder le fichier identique à :wq

Déplacement en mode commande

Commande Description
h Déplacement vers la gauche
l Déplacement vers la droite
k Déplacement vers le haut
j Déplacement vers le bas

Commande Description
0(zéro) Début de ligne
$ Fin de ligne
:$ Aller à la dernière ligne
:0 Aller à la première ligne
w Déplacer le curseur au mot suivant
b Déplacer le curseur au mot précédent
fc Saut sur le carractère 'c'
CTRL+ F remonter d'un écran
CTRL+ B Déscendre d'un écran
G Dernière ligne du fichier
nG Saute à la n ième ligne (identique à :n)

Correction

Commande Description
x Efface le carractère sous le curseur
X Efface le carractère devant le curseur
rc Remplace le carractère sous le curseur par le carractère 'c'
dw Efface le mot depuis le curseur jusqu'a la fin du mot
d$ oou D Efface toous les caractères jusqu'à la fin de la ligne
dO Efface tous les caractères jusqu'au début de la ligne
dfc Efface tous les caractère de la ligne jusqu'au caractère 'c'
dG Efface tous les caractères jusqu'à la dernière ligne ainsi que la ligne active
d1G Effac tous les caractères jusqu'à la première ligne ainsi que la ligne active
dd Efface la ligne active

Ces commande peuvent être répéter 5dd supprime 5 lignes.

Recherche dans le texte

Comme dit plus haut vi est éditeur de texte vraiment treès puissant et une de ces grandes forces est le fait qu'il comprenne nativement et parfaitement bien les regex les plus complexe. ce qui peut vous sauver la vie dans bien des situations ou il faut checker un fichier de plusieurs miliers de lignes pour retrouver un mot ou une ligne qu'une regex va nous permettre de trouver en quelques secondes, alors que sans ces regex de barbare ça pourrait prendre des heures. croyez moi ça peut vous sauvez de bien des situations bien embêtantes.

Quelques exemples de recherche avec des regex.

Pour lancer le mode recherche dans il faut taper la commande / en mode commande

Regex Description
/[FfbB]oule Trouvera les mots : Foule, Boule, foule, boule
/[A-Z]l Tout ce qui commence par une majuscule avec un l en deuxième position
/[A-Za-z0-9] Tout ce qui commence par une majuscule, minuscule ou un chiffre
/[^a-z] Plage négatif : Tout ce qui ne commence pas par une minuscule
/vé.o Le . remplace un caractère quelconque trouvera donc : vélo, véto, véro, véno etc...
/.* indique une chaine de caractères quelconques de taille variable
[A-Z][A-Z]* Répétition du motif entre crochet de 0 à n fois, recherche d'un mot avec une majuscule au début
/^Ballon Indique que la chaine rechercher (Ballon) devra être en début de ligne
/$Moto$ indique que la chaine recher devra être en fin de ligne
/mot rechercher la chaine de caractères "mot" dans le buffer courant

Quelques commandes de remplacement

Commande Description
cw Remplacement du mot courant
c$ Remplacement jusqu'à la fin de la ligne
cO Remplacement jusqu'au début de la ligne
cfz Rremplacement j'usqu'au prochain caractère 'z' dans la ligne courante
c/shadow Remplacement jusqu'a la prochaine occurence de la chaine 'shadow'

Copier/couper coller

Commande Description
yy Copier une ligne
5yy Copier 5 lignes
dd Couper une ligne
10dd Couper 10 lignes
p Coller la/les ligne(s) copier ou couper à un endroit donné

Substitution

Faire une recherche et un remplacement des occurence trouver dans ce fichier est une tâche quasi courante chez tout bon adminsys qui se respecte et bonne nouvelle VI le fait parfaitement bien et très simplement. Si vous avez compris les commande cité plus haut vous n'aurez aucuns mal à comprendre celles-ci car c'est juste un combo de plusieurs commande déjà vu.

: [première ligne, dernière ligne]s/Modèle/Remplacement/[gc]

un exemple plus que simple. On va remplacer dans tout le fichier les mots Unix ou unix par UNIX:

:1,$s/[Uu]nix/UNIX/g

Voilà c'est pas plus compliqué que ça VI c'est assez simple et très puissant. il suffit juste de se pencher dessus. Maintenant vous êtes définitivement des pro de l'éditeur de texte VI.