Le système d'exploitation GNU-Linux/L'éditeur de texte vi

Un livre de Wikilivres.



L'éditeur de textes vi

vi' (connu sous ses abréviations anglaises, prononcer vie-ail) est un éditeur de texte présent d'office sur la majorité des systèmes Unix actuels depuis 1976, souvent sous la forme d'un clone du logiciel vi originel.

vi est un éditeur modal, c'est-à-dire que la signification des boutons et des touches change selon le mode dans lequel il se trouve. L'un de ses intérêts a longtemps été de ne pas nécessiter de souris et de fonctionner avec un nombre réduit de touches. En effet, la présence de deux modes permet d'avoir un mode où les touches lettres servent à la saisie des caractères, en mode commande aux déplacements et autres commandes. De ce fait l'ensemble des nouvelles touches (flèches, clavier numérique et touches de fonction notamment) est totalement superflus. L'interface est donc la même pour tout ordinateur qu'il soit équipé d'un clavier de minitel ou d'un clavier avec d'innombrables touches.

Vi fut écrit par Bill Joy en 1976, « et ben ça ne nous rajeunit pas les enfants.»

 « Tu connais Notepad ? Ben Vi c'est bien mieux, c'est même super ! »
 « Avec vi, tu vas frimer devant tes potes, et te la jouer hackeur. »

Derrière un aspect rustique qui nécessites une familiarisation, se cache des fonctionnalités d'édition qui ne sont pas présentes dans d'autres éditeurs de texte. Le minimum à savoir pour utiliser vi est de connaître les deux touches permettant de basculer entre ces deux modes principaux.

 Alors tape dans un Shell avec tes doigts musclés vi et Entrée.
 Là t'as une page blanche, comme pour un nouveau roman d'amitié qui commence entre toi et Linux.
 Tu peux faire plusieurs commandes :
 - Tape i : là par miracle tu peux taper des bêtises dans ta page.
 - Tape < ESC >  : là tu ne peux plus rien écrire, mais ... tu peux exécuter des commandes.
 Et vice versa

Il y a donc 2 modes : insertion et commande.

 En mode insertion ----> "tu peux écrire tout ce que tu veux."
 En mode commande ----> "tu peux enregistrer, effacer, quitter, etc."
  • Pour passer du mode insertion au mode commande : touche < ESC >
  • Pour passer du mode commande au mode insertion : touche i. (insert)
  • En mode commande, on peut passer en un 3ème mode "mode Execution" en tapant ":'"(la ligne de commande est en bas de l'écran)


Les commandes de base de vi
Commande Fonction de la commande
x effacer une lettre (xterminator)
dd effacer la ligne courante (delete)
yy copier la ligne courante (yank)
p coller la ligne copiée précédement lors de la commande yy ou de la commande dd
:x aller à la ligne x (go to line) - Ex. :152 met le curseur à la ligne 152
r remplace un caractère (replace)
u annule la dernière commande (undo)
:w sauvegarder le fichier (write)
:q! quitter vi sans sauvegarder (quit)
:wq sauvegarder et quitter (write quit)
:help pour afficher l'aide dans vi
:q pour quitter la fenêtre d'aide si elle est ouverte ou l'éditeur
:w nom_fichier enregistre ce qui est saisi dans le fichier nom_fichier
/toto chercher la chaîne toto en avant
?toto chercher la chaîne toto en arrière
n permet de chercher l'occurrence suivante de la chaîne
:s/alex/toto remplace l'occurrence suivante de la chaîne alex par toto
:%s/alex/toto/gic remplace la chaîne alex par toto dans tout le fichier

"%" pour tout le fichier, "s" search, "g" global, "i" ignore la casse, "c" confirmation

Il est difficile de savoir si on est en mode insertion ou en mode commande, le plus simple est d'appuyer plusieurs fois sur <ESC> pour être sûr d'être en mode commande.

vi est rustique, on le trouve sur tous les systèmes UNIX, même les plus vieux. Il est préférable d'utiliser vim (VI iMproved) quand c'est possible, c'est un éditeur vi amélioré

Après l'installation de vim, lancez le programme en tapant indifféremment vi ou vim

Vim est plus convivial, il prend en compte les flèches et d'autres fonctions du clavier récent.

Il existe bien entendu d'autres éditeurs de texte dans Linux, du plus perfectionné au plus basique, mais vi est celui qu'on trouve partout (même sur notre vieux minitel). Il est donc impératif d'en connaître les commandes de base.

Quelques autres éditeurs :

 1. Ed
 2. Nano
 3. Emacs (editor macro)
 4. Joe
 5. Pico
 6. XEmacs (anciennement Lucid Emacs) est un éditeur de texte pour X-Window, basé sur GNU Emacs.