**vi**... l'éditeur de texte de base de Linux, disponible uniquement via un terminal, on préfère toujours en utiliser un autre lorsqu'on débute mais il faut bien avouer que vi (prononcez vihaille, à l'anglaise) vous sauvera la mise car il arrive toujours un moment ou rien d'autre ne fonctionne...

vi peut être utiliser pour lire et écrire un fichier, pour le lancer c'est tout simple il suffit de taper : vi <nom_du_fichier> si le fichier existe il l'ouvre sinon il le créer.

Voyons maintenant son fonctionnement :

vi fournit deux modes de fonctionnement, le premier est le mode "normal" qui permet de naviguer et d'agir sur le texte (copier/coller, effacer une ligne, etc...) sans pouvoir écrire de texte. Le second est le mode "d'insertion" qui lui permet de modifier le texte à sa guise.

Le mode normal est le mode par défaut de vi, pour entrer en mode d'insertion on appuie sur la touche "i" ou sur "inser", pour quitter ce mode on appuie sur "echap" (ou "esc" selon votre clavier).

On approfondira bien entendu que le mode normal, puisque le fonctionnement du mode d'insertion ne posera de problème à personne.

Voici donc les commandes les plus utilisées (attention il faut respecter la casse majuscules/minuscules) :

== 0) Manuel et aide : ==


    * :help => affiche l'aide
    * :help howto => pour débuter
    * :se all => affiche toutes les commandes

==1) Se déplacer dans le texte :==

    * touches : h,j,k,l => déplacement du curseur
    * $ => déplace le curseur en fin de ligne
    * n G => aller à la ligne n
    * Ctrl B / Crtl F (ou Page Up / Page Down) => page(écran) suivante / précédente
    * z suivi de <Entrée> => positionne la ligne courante en haut de l'écran

== 2) Insérer/modifier du texte (toutes ces commandes font passer en mode d'insertion, utilisez la touche echap pour le quitter) : ==


    * i => insère du texte avant le curseur
    * A => insère du texte en fin de ligne
    * a => insère du texte après le curseur
    * o => créer une ligne vierge au dessous du curseur
    * O => créer une ligne vierge au dessus du curseur

== 3) Effacer du texte : ==


    * dd => efface la ligne courante
    * n dd => efface n ligne après le curseur (y compris la ligne courante)
    * x => efface un caractère (mettre n en option avant x pour effacer n caractères)

== 4) Interragir avec les fichiers : ==


    * :n <fic1> => ouvre le fichier "fic1"
    * :q! => quitte sans sauvegarder
    * :w => sauvegarde le fichier en cours
    * :wq => sauvegarde et quitte
    * :file <nom2> => change le nom du fichier courant ou enregistre à un endroit différent (= "enregistrer sous")
    * :e! => rétablit le fichier à l'état dans lequel il était à l'ouverture
    * :r <fic1> => insère le contenu du fichier "fic1" après le curseur

== 5) Chercher et remplacer : ==


    * yy => copier (une ligne entière)
    * yw => copie le mot sur lequel est le curseur (ajouter l'option n avant 'w' pour spécifier le nombre de mot à copier
    * p ou P => coller
    * / <chaine> => cherche la première occurence de la chaine "chaine"
    * xp => échange le caractère courant avec le suivant

== 6) autres commandes utiles : ==


    * . => répète la dernière commande
    * ~ => remplace les majuscules par des minuscules (et inversement)

Pour finir et mainenant que vous savez utiliser vi voici une série d'exercices sympatiques [[http://philippe.corbes.free.fr/linux/mulinux/vi-muman.fr|exercices sur vi]]