Vous êtes sur la page 1sur 3

Module 8 : Système Open Source Linux

Chapitre 2: 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. Pourtant, il reste encore très utilisé car il est présent sur tous les systèmes
UNIX.
"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.
1. 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>.
2. 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

S.MOUMNI 1 TRI 1ère année


Module 8 : Système Open Source Linux

tapé.
Remplace tous les caractères jusqu'à la fin de la ligne ou jusqu'à ce que la touche
R
<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.
Se déplace à la ligne [n]. Si [n] n'est pas précisé, se déplace à la dernière ligne.
[n]G
[n] est optionnel.
^ 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.

[:]x,ys/s1/s2/opt
Recherche entre les lignes x et y (optionnel) la chaîne s1 et la
Exemples : remplace par la chaîne s2 (pour remplacer chaque
[:]%s/toto/titi/g
Remplace tous les occurrence, utiliser l'option g). Remarque : s1 et s2 sont en
'toto' par 'titi' fait des regexp (expressions régulières), permettant d'écrire
[:]1,$s/t[o,i]to/tata/
un masque générique, mais c'est un autre sujet... Je vous
Remplace 'toto' ou 'tito' conseille de taper :help :s et :help regexp dans votre vi
par 'tata' favori...
Recherche entre les lignes x et y (optionnel) la chaîne str et
[:]x,yg/str/cmd
exécuter la commande vi cmd sur chaque occurrence

Pour remplacer une chaîne de caractère par une autre sur un ligne, il existe une
commande très puissante sous Vi utilisant les expressions régulières. Voici sa syntaxe :
:s/chaine_a_remplacer/chaine_remplacante/

Il est possible de la généraliser à tout le document grâce à la syntaxe suivante :

:%s/chaine_a_remplacer/chaine_remplacante/

Les commandes d'effacement.


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

S.MOUMNI 2 TRI 1ère année


Module 8 : Système Open Source Linux

courante)
Efface n caractères à partir du caractère courant ([x] efface juste le
n[x]
caractère courant)
n[d][w] ou
Efface les n mots suivants ou précédents, à partir du mot suivant
n[d][b]
[d][/]str Efface tout depuis le curseur jusqu'à la première occurrence de str
[:]g/^$/d Efface toutes les lignes vides
Efface toutes les lignes vides, même si elles contiennent un ou plusieurs
[:]g/^ *$/d
espaces

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".
Quitte "vi". Si des modifications ont été effectuées mais non sauvegardées, la
:q
commande ne sera pas exécutée.
Quitte "vi". Si des modifications ont été effectuées mais non sauvegardées, elles
:q!
seront perdues.

S.MOUMNI 3 TRI 1ère année

Vous aimerez peut-être aussi