Introduction à Linux

Dernière mise à jour : 26/05/2016

L'éditeur de texte standard vi

Introduction

Quiconque travaille en ligne de commande sous Linux a été confronté à un moment donné à "vi". Dire que l'utilisation de ce dernier nécessite une certaine habitude est un euphémisme. Toutefois, il peut rendre de nombreux services.

"vi" a été développé pour être utilisé sur des terminaux disposant d'un nombre limité de touches. Ainsi, vous pouvez vous passer des touches comme les flèches, les sauts de page, les touches d'effacement, etc. Toutes ces fonctionnalités peuvent être réalisées grâces aux touches alphanumériques.

Les différents modes

"vi" possède différents modes de travail. Chaque mode vous permet d'exécuter différentes choses. Lorsque vous démarré, vous vous trouvez dans le mode "commande". Vous pouvez passer en mode "édition" ou en mode "ex".

Le mode "commande"

Le mode "commande" est le mode dans lequel vous pouvez introduire différentes commandes. Vous pouvez ainsi déplacer votre curseur, effacer un ou plusieurs caractères, effectuer des substitutions, etc.

Le mode "édition"

Le mode "édition" est le mode dans lequel vous pouvez taper votre texte.

Le mode "ex"

Le mode "ex" est un mode de commande qui permet d'effectuer des tâches un peu différentes de celles du mode "commande" comme sauver le fichier, quitter le programme, etc.

Passer d'un mode à l'autre

Au démarrage, vous vous trouvez dans le mode "commande". Pour passer en mode "édition", il existe une série de commandes, que nous verrons plus tard, suivant l'action que vous désirez effectuer.

Pour passer du mode "commande" au mode "ex", tapez la touche :. Lorsque la commande "ex" sera exécutée, vous retournerez automatiquement au mode "commande".

Pour passer du mode "édition" au mode "commande", pressez la touche <ESC>.

Les commandes du mode "commande"

Passage en mode "édition"

Commande Action
i Insertion de texte devant le curseur.
a Insertion de texte après le caractère.
I Insertion de texte au début de la ligne.
A Insertion de texte à la fin de la ligne.
o Ajout d'une ligne avant la ligne courante et passage en mode "édition".
O Ajout d'une ligne après la ligne courante et passage en mode "édition".
r Remplace le caractère se trouvant par sous le curseur par le prochain caractère tapé.
R Remplace tous les caractères jusqu'à la fin de la ligne ou jusqu'à ce que la touche <ESC> soit pressée.

Les commandes de déplacement

Bien que les touches de déplacement fonctionnent dans la plupart des versions moderne de "vi", voici les commandes classiques.

Commande Action
[n]h Déplacement de n caractères à gauche. n est optionnel.
[n]j Descend de n caractères. n est optionnel.
[n]k Monte de n caractères. n est optionnel.
[n]l Déplacement de n caractères à droite. n est optionnel.
<CTRL>+F Avance d'un écran.
<CTRL>+B Recule d'un écran.
[n]G Se déplace à la ligne n. n est optionnel. S'il n'est pas précisé, se déplace à la dernière ligne.
^ Premier caractère non blanc de la ligne.
$ Dernier caractère de la ligne.

Les commandes de recherche

Commande Action
/texte Recherche "texte" vers le bas.
n Recommence la dernière recherche.

Les commandes d'effacement

Commande Action
[n]x Efface n caractère à partir du curseur. n est optionnel.
X Efface la caractère précédant le curseur.
[n]dd Efface n ligne à partir de la ligne en cours. n est optionnel.
[n]dw Efface n mots à partir du mot en en cours. n est optionnel.

Notez que tout ce que vous effacez est placé dans une mémoire tampon et qu'il pourra être collé plus tard.

Les commandes d'édition

Commande Action
[n]yy Copie n lignes dans la mémoire tampon. n est optionnel.
p Colle le texte contenu dans la mémoire tampon après le curseur.
P Colle le texte contenu dans la mémoire tampon avant le curseur.
u Annule la dernière action.
. Répète la dernière action.

Les commandes du mode "ex"

L'aide

Commande Action
:help Affiche l'aide.
:viusage Affiche la liste des commandes du mode "commande".
:exusage Affiche la liste des commandes du mode "ex".

La manipulation des fichiers

Commande Action
:w [fichier] Sauvegarde dans fichier. fichier est optionnel.
:wq Sauvegarde le fichier en cours et quitte "vi".
:q Quitte "vi". Si des modifications ont été effectuées mais non sauvegardées, la commande ne sera pas exécutée.
:q! Quitte "vi". Si des modifications ont été effectuées mais non sauvegardées, elles seront perdues.