Vous êtes connecté en SSH sur un serveur, vous devez corriger un fichier de
configuration, et le seul éditeur disponible est vi. Pour en sortir
immédiatement : appuyez sur Esc une ou deux fois, puis tapez :wq suivi
d'Entrée pour sauvegarder et quitter, ou :q! suivi d'Entrée pour
quitter en abandonnant les modifications. Ce guide vous apprend ensuite à
ouvrir un fichier, le modifier et le sauvegarder avec vi, pas à pas : les
trois modes, les déplacements au clavier, la suppression, la copie, la
recherche et le remplacement. Vous repartirez avec les réflexes pour éditer
n'importe quel fichier texte sur un système Linux minimal, conteneur
Alpine ou serveur en mode rescue compris.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Ouvrir, modifier et quitter vi (la base absolue)
- Le système de modes qui rend vi unique
- Naviguer rapidement dans un fichier
- Chercher et remplacer du texte
Qu'est-ce que vi ?
Section intitulée « Qu'est-ce que vi ? »vi (prononcé « vi-aille », comme les initiales de visual) est un éditeur de texte en ligne de commande créé en 1976 par Bill Joy. Il est installé par défaut sur tous les systèmes Unix et Linux, y compris les conteneurs Docker les plus minimalistes et les serveurs d'urgence.
vi couvre le strict nécessaire : ouvrir un fichier, s'y déplacer, le modifier, l'enregistrer. Il ne fournit ni coloration syntaxique, ni plugins, ni fichier de configuration persistant, ces fonctions relèvent de vim. En contrepartie, il démarre sur un système en mode rescue, dans une image BusyBox ou sur un équipement embarqué, là où aucun autre éditeur n'est installé.
| Caractéristique | vi | Éditeur graphique (VS Code, etc.) |
|---|---|---|
| Disponibilité | Partout, même sans bureau graphique | Nécessite un environnement graphique |
| Poids | Quelques Ko | Plusieurs centaines de Mo |
| Courbe d'apprentissage | Forte au début, puis rapide | Intuitive dès le départ |
| Usage typique | Dépannage serveur, édition rapide | Développement au quotidien |
Ce tableau explique pourquoi vi survit à des éditeurs bien plus confortables :
sa disponibilité ne dépend de rien. Même si vous travaillez sous VS Code ou
nano au quotidien, quatre situations vous y ramèneront. Un serveur démarré
en mode rescue, où aucun autre éditeur n'est installé. Un conteneur
construit sur une image Alpine ou BusyBox, qui embarque vi et rien
d'autre. Une connexion SSH vers un équipement réseau ou un système embarqué.
Enfin le dépannage en urgence, où installer un paquet supplémentaire est soit
impossible, soit une mauvaise idée sur une machine en production. Dans ces
quatre cas, savoir taper i, Esc et :wq fait la différence entre corriger
le fichier et rappeler quelqu'un.
Prérequis
Section intitulée « Prérequis »- Un terminal Linux (physique, VM ou WSL)
- Aucune connaissance préalable de vi
Pour vérifier que vi est disponible sur votre système :
which viRésultat attendu : /usr/bin/vi (ou un chemin similaire).
Premier contact : ouvrir, écrire, sauvegarder
Section intitulée « Premier contact : ouvrir, écrire, sauvegarder »Avant d'apprendre toutes les commandes, commençons par la seule chose qui compte quand on découvre vi : le cycle complet « ouvrir un fichier, taper du texte, sauvegarder et quitter ».
« Comment je sors de vi ? » reste la frustration numéro 1 des débutants. Vous avez la réponse courte en tête de page ; la séquence ci-dessous la remet dans son contexte, du fichier ouvert au fichier écrit sur le disque.
-
Ouvrir vi sur un fichier de test
Créez un fichier temporaire pour vous entraîner sans risque :
Fenêtre de terminal vi /tmp/test-vi.txtVi s'ouvre. L'écran affiche des tildes (
~) sur les lignes vides. Vous êtes en mode commande : les touches du clavier n'écrivent pas de texte, elles déclenchent des actions. -
Passer en mode insertion pour écrire
Appuyez sur la touche
i(comme insert). En bas de l'écran, vous voyez-- INSERT --apparaître. Vous êtes maintenant en mode insertion : vous pouvez taper du texte normalement.Tapez quelques lignes :
Ceci est mon premier fichier édité avec vi.Ligne numéro deux.Et une troisième ligne pour s'entraîner. -
Revenir en mode commande
Appuyez sur la touche
Esc. Le message-- INSERT --disparaît. Vous êtes de retour en mode commande. -
Sauvegarder et quitter
Tapez
:wqpuis appuyez surEntrée.:ouvre le mode Ex (la ligne de commande en bas de l'écran)wsignifie write (écrire/sauvegarder)qsignifie quit (quitter)
-
Vérifier que le fichier a bien été sauvegardé
De retour dans le terminal, affichez le contenu du fichier :
Fenêtre de terminal cat /tmp/test-vi.txtVous devriez voir vos trois lignes de texte.
Refaites cette séquence trois fois de suite avant de poursuivre. L'objectif
n'est pas de comprendre, il est de rendre le cycle i → texte → Esc → :wq
automatique. C'est le geste que vous répéterez à chaque intervention sur un
serveur, souvent dans un contexte où votre attention est ailleurs, sur
l'incident que vous êtes en train de traiter.
Voici une démonstration animée de ce cycle complet :

Quitter vi dans toutes les situations
Section intitulée « Quitter vi dans toutes les situations »Toutes ces commandes se tapent depuis le mode commande, donc après un Esc.
La logique tient en trois lettres : w écrit le fichier sur le disque, q
ferme l'éditeur, et le point d'exclamation ! force l'opération malgré un
refus. Sans le !, vi bloque la sortie si le tampon contient des
modifications non enregistrées, c'est une protection, pas un bug. Repérez dans
le tableau la colonne du milieu : c'est elle que vous taperez, la troisième
colonne dit ce que vous perdez ou conservez.
| Situation | Commande | Ce que ça fait |
|---|---|---|
| Sauvegarder et quitter | :wq puis Entrée | Écrit le fichier et ferme vi |
| Quitter sans sauvegarder | :q! puis Entrée | Abandonne les modifications |
| Juste sauvegarder | :w puis Entrée | Écrit le fichier, reste dans vi |
| Juste quitter (rien à sauvegarder) | :q puis Entrée | Ferme vi (échoue si modifications non sauvegardées) |
| Raccourci sauvegarde + quit | ZZ (majuscules, sans :) | Équivalent de :wq |
| Sauvegarder sous un autre nom | :w nouveau_nom | Crée une copie du fichier |
| Quitter tous les fichiers ouverts | :qa! | Ferme tout sans sauvegarder |
Comprendre les modes de vi
Section intitulée « Comprendre les modes de vi »Contrairement à nano ou à un éditeur graphique, vi ne fonctionne pas en mode « taper du texte » par défaut. C'est ce qui déroute les débutants.
Le mécanisme est le suivant : vi maintient un état interne, le mode, et
interprète chaque touche du clavier en fonction de cet état. En mode
commande, la touche d déclenche une suppression ; en mode insertion, la
même touche d écrit la lettre « d » dans le fichier. Ce ne sont pas deux
claviers différents, c'est la même frappe routée vers deux tables d'actions
distinctes.
Cette conception explique la mésaventure classique du débutant : il ouvre un
fichier, tape son texte sans avoir appuyé sur i, et déclenche une dizaine de
commandes au hasard. Rien n'est perdu pour autant, u annule et :q! referme
le fichier sans rien écrire sur le disque.
La séparation paraît coûteuse, elle achète en réalité une densité de commandes
qu'un éditeur non modal ne peut pas atteindre : en mode commande, chaque
touche du clavier est un raccourci disponible, sans modificateur. Là où un
éditeur graphique doit recourir à une combinaison du type Ctrl+Maj+K pour
supprimer une ligne, vi demande dd, deux frappes sur la rangée de repos. C'est
ce qui rend l'éditeur très rapide une fois les gestes acquis, et c'est aussi ce
qui le rend déroutant pendant les premières heures.
Les trois modes
Section intitulée « Les trois modes »Lisez ce tableau par la colonne de droite d'abord : savoir comment sortir
d'un mode compte plus que savoir y entrer, parce qu'un blocage vient toujours
d'un mode dont on ignore la sortie. Notez aussi qu'un seul mode, le mode
commande, est accessible depuis les deux autres. C'est pour cette raison que
Esc répété est la manoeuvre de secours universelle.
| Mode | Comment y entrer | Ce qu'il fait | Comment le quitter |
|---|---|---|---|
| Commande | Esc (ou à l'ouverture) | Naviguer, supprimer, copier, coller | Tapez i, a, o ou : |
| Insertion | i, a, o, O | Écrire du texte | Appuyez sur Esc |
| Ex | : (depuis le mode commande) | Commandes longues (:w, :q, :%s/…) | Entrée pour exécuter, Esc pour annuler |
Le mode commande est le point de passage obligé : on ne bascule jamais
directement du mode insertion au mode Ex, il faut repasser par lui. Prenez
l'habitude d'appuyer sur Esc dès qu'une action est terminée, vous saurez
toujours où vous en êtes.
Savoir dans quel mode on se trouve
Section intitulée « Savoir dans quel mode on se trouve »Un réflexe simple : regardez en bas à gauche de l'écran. Cet affichage
dépend de l'option showmode, activée par défaut dès que l'éditeur tourne en
mode nocompatible, ce qui est le cas de vim lancé dans un terminal
classique. Sur une implémentation strictement compatible vi (BusyBox, ou
vim -C), l'indicateur peut ne jamais apparaître : ne vous fiez alors qu'au
comportement des touches.
L'absence d'indication est elle aussi une information, elle signale le mode commande. C'est la ligne à retenir dans le tableau, les trois autres se reconnaissent au premier coup d'oeil.
| Ce que vous voyez | Mode actif |
|---|---|
-- INSERT -- | Mode insertion |
-- REPLACE -- | Mode remplacement |
| Rien de spécial | Mode commande |
: suivi de texte | Mode Ex |
Le meilleur moyen d'ancrer cette lecture est de faire l'aller-retour vous-même.
Ouvrez vi /tmp/test-vi.txt : rien ne s'affiche en bas de l'écran, vous êtes en
mode commande. Appuyez sur i, -- INSERT -- apparaît ; tapez quelques
lettres, puis Esc, l'indicateur disparaît. Tapez :, le curseur descend sur
la dernière ligne de l'écran, et Esc vous ramène au mode commande. Cinq
passages suffisent en général pour que le réflexe soit pris et que vous cessiez
de deviner votre mode.
Les différentes façons d'entrer en insertion
Section intitulée « Les différentes façons d'entrer en insertion »Vous connaissez i pour passer en mode insertion, mais vi offre plusieurs
portes d'entrée selon où vous voulez commencer à écrire. Chacune vous fait
gagner du temps dans une situation précise.
| Touche | Action | Situation typique |
|---|---|---|
i | Insère avant le curseur | Cas général, correction au milieu d'un mot |
a | Insère après le curseur | Ajouter du texte à la suite d'un mot |
I | Insère au début de la ligne | Ajouter un commentaire # devant une ligne |
A | Insère à la fin de la ligne | Compléter une ligne existante |
o | Ouvre une nouvelle ligne en dessous | Ajouter une directive dans un fichier de config |
O | Ouvre une nouvelle ligne au-dessus | Insérer une ligne au-dessus de la ligne courante |
Exemple concret : vous éditez /etc/hosts et le curseur se trouve sur la
ligne 127.0.0.1 localhost. Voici ce que fait chaque touche :
i→ le curseur clignote avant le1de127: vous écrivez avanta→ le curseur se place après le1de127: vous écrivez aprèsA→ le curseur saute à la fin delocalhost: vous pouvez ajouter un aliaso→ une ligne vide apparaît en dessous : vous pouvez ajouter une entrée
Pour sentir la différence entre ces touches, ouvrez /tmp/test-vi.txt, placez
le curseur au milieu d'un mot, puis essayez successivement a suivi de texte et
Esc, A suivi de texte et Esc, enfin o suivi d'une ligne entière et
Esc. La comparaison la plus instructive reste celle entre i et a sur le
même caractère : un caractère d'écart au démarrage, et toute la différence entre
corriger un mot et le compléter.
Naviguer dans un fichier
Section intitulée « Naviguer dans un fichier »Avec vi, pas de souris. Tout se pilote au clavier. Au début, c'est déroutant. Mais une fois les commandes en mémoire musculaire, c'est bien plus rapide qu'un clic.
Déplacements caractère par caractère
Section intitulée « Déplacements caractère par caractère »Les quatre touches de base sont positionnées sous votre main droite. Ce
placement date des terminaux ADM-3A de 1976, dont le clavier portait ces
flèches gravées sur h, j, k et l. Retenez surtout qu'un compteur
peut précéder n'importe laquelle : 10j descend de dix lignes d'un coup, 5l
avance de cinq caractères. Ce préfixe numérique fonctionne avec presque toutes
les commandes de vi, c'est ce qui rend l'éditeur rapide.
↑ k← h l → j ↓| Touche | Direction | Astuce pour retenir |
|---|---|---|
h | Gauche ← | La touche la plus à gauche du groupe |
j | Bas ↓ | Le j « descend » sous la ligne de base |
k | Haut ↑ | Le k « monte » (pensez à kick vers le haut) |
l | Droite → | La touche la plus à droite du groupe |
Sur la plupart des systèmes modernes, les touches fléchées fonctionnent
aussi, et personne ne vous reprochera de les utiliser au début. Le gain de h,
j, k et l est ailleurs : elles gardent les mains sur la rangée de
repos, sans aller chercher le pavé fléché. Sur une implémentation strictement
compatible vi, en revanche, appuyer sur une flèche depuis le mode
insertion peut insérer des lettres parasites (A, B, C, D) au lieu de
déplacer le curseur, parce que l'éditeur reçoit la séquence d'échappement du
terminal caractère par caractère. C'est le cas où hjkl cesse d'être une
préférence de puriste.
Naviguer par mots
Section intitulée « Naviguer par mots »Pour aller plus vite que caractère par caractère, vi permet de sauter de mot en mot :
| Touche | Action | Exemple sur server_name localhost; |
|---|---|---|
w | Mot suivant (début) | Saute de server_name à localhost |
e | Fin du mot courant | Saute au e de server_name |
b | Mot précédent (début) | Revient de localhost à server_name |
Ajouter une majuscule (W, E, B) fait sauter entre les mots séparés
par des espaces uniquement, ce qui est utile dans les scripts.
Naviguer dans une ligne
Section intitulée « Naviguer dans une ligne »Le piège de ce tableau est la différence entre 0 et ^. Le zéro ramène à
la colonne 1, donc devant l'indentation ; l'accent circonflexe s'arrête au
premier caractère non blanc. Sur un fichier YAML ou un nginx.conf
indentés, c'est ^ que vous voulez presque toujours. Retenez aussi 0 et $,
ils reviennent plus loin comme portées de suppression (d0, d$) et comme
ancres dans les recherches.
| Touche | Action |
|---|---|
0 (zéro) | Début de la ligne |
^ | Premier caractère non vide (utile pour les fichiers indentés) |
$ | Fin de la ligne |
Sauter à une ligne précise
Section intitulée « Sauter à une ligne précise »Quand systemctl status ou nginx -t vous répond « erreur ligne 42 », vous
voulez y aller directement, sans compter les lignes. Trois commandes couvrent ce
besoin, et la première est de loin la plus utilisée en dépannage.
| Commande | Action |
|---|---|
:42 | Aller à la ligne 42 |
gg | Aller à la première ligne du fichier |
G | Aller à la dernière ligne du fichier |
Deux variantes valent d'être connues. 42G fait la même chose que :42 sans
passer par le mode Ex, et G précédé d'un nombre suit donc la logique de
préfixe numérique vue plus haut. Activez :set number (voir la section sur les
options) pour vérifier d'un coup d'oeil que vous êtes bien sur la ligne
annoncée par le message d'erreur.
Naviguer dans l'écran
Section intitulée « Naviguer dans l'écran »Ces commandes raisonnent en fenêtre affichée, pas en fichier : H place le
curseur sur la première ligne visible, pas sur la première ligne du
fichier. La distinction devient évidente au milieu d'un journal de 10 000
lignes, où H ne bouge que de quelques lignes tandis que gg remonte tout en
haut. Ctrl+f et Ctrl+b font défiler d'un écran entier et sont le moyen le
plus rapide de parcourir un long fichier de configuration sans le modifier.
| Touche | Action |
|---|---|
H | Haut de l'écran visible (High) |
M | Milieu de l'écran (Middle) |
L | Bas de l'écran (Low) |
Ctrl+f | Page suivante (forward) |
Ctrl+b | Page précédente (backward) |
Un fichier réel vaut mieux qu'un fichier de test pour cet exercice. Ouvrez
vi /etc/passwd, présent sur tout système Linux et sans risque puisque vous n'y
écrirez rien : descendez de cinq lignes avec j, sautez à la fin avec G,
remontez avec gg, allez à la ligne 10 avec :10, puis parcourez une ligne mot
à mot avec w et b. Quittez avec :q, sans point d'exclamation. Si vi refuse
de se fermer, c'est que le fichier a été modifié sans que vous le vouliez :
:q! règle le cas sans rien écrire sur le disque.
Placer des marques (signets)
Section intitulée « Placer des marques (signets) »Quand vous travaillez sur un long fichier, vous pouvez poser des repères pour revenir rapidement à un endroit :
ma: pose une marque nomméeaà la position du curseur'a: revient à la ligne marquéea
Les marques vont de a à z, soit 26 repères par fichier. Elles ne sont
pas persistantes : elles disparaissent à la fermeture de l'éditeur. Une nuance
utile sur les longues lignes, l'apostrophe simple 'a repositionne le curseur
sur le premier caractère non blanc de la ligne marquée, tandis que l'accent
grave suivi de la même lettre restaure la position exacte, colonne comprise.
Supprimer du texte
Section intitulée « Supprimer du texte »En mode commande, vi propose des commandes de suppression qui évitent de sélectionner laborieusement du texte avec la souris. Chaque commande suit une logique simple : d + portée (d pour delete).
Suppressions courantes
Section intitulée « Suppressions courantes »Les deux premières lignes du tableau (x et X) agissent sur un seul
caractère et n'attendent pas de portée. Les suivantes suivent toutes le
schéma d + portée, où la portée est exactement une commande de déplacement
déjà vue : w, $, 0. Cette régularité vous évite d'apprendre une liste par
coeur, toute nouvelle commande de déplacement devient automatiquement une
portée de suppression. Un détail à connaître : dw supprime jusqu'au début
du mot suivant, donc il emporte aussi l'espace qui sépare les deux mots. Sur
server_name localhost;, un dw au tout début laisse localhost; collé à la
marge.
| Commande | Ce que ça supprime | Quand l'utiliser |
|---|---|---|
x | Le caractère sous le curseur | Corriger une faute de frappe |
X | Le caractère avant le curseur | Supprimer en arrière (comme Retour arrière) |
dw | Du curseur jusqu'au mot suivant | Supprimer un mot |
dd | La ligne entière | Supprimer une ligne de configuration |
d$ | Du curseur à la fin de la ligne | Supprimer la fin d'une ligne |
d0 | Du curseur au début de la ligne | Supprimer le début d'une ligne |
Supprimer plusieurs lignes
Section intitulée « Supprimer plusieurs lignes »Vous pouvez combiner un nombre avec dd :
3ddSupprime 3 lignes à partir de la ligne courante. Très pratique pour supprimer un bloc de configuration.
Exemple concret : vous éditez un fichier nginx.conf et vous voulez
supprimer un bloc location de 5 lignes. Placez le curseur sur la première
ligne du bloc, puis tapez 5dd.
Un point à connaître avant d'aller plus loin : dans vi, supprimer, c'est
couper. Tout ce qu'effacent d et x part dans un registre en mémoire et
se recolle avec p. Une suppression malencontreuse se rattrape donc de deux
façons, u pour annuler ou p pour recoller le texte ailleurs. Le corollaire
est moins agréable : un dd écrase ce que vous veniez de copier avec yy,
puisque les deux commandes utilisent le même registre par défaut.
Modifier du texte
Section intitulée « Modifier du texte »Au-delà de la suppression, vi propose des commandes pour remplacer et modifier du texte sans quitter le mode commande.
Remplacer un caractère
Section intitulée « Remplacer un caractère »La commande r est la plus économique de vi pour corriger une coquille
isolée : elle consomme deux frappes et vous laisse en mode commande, sans le
Esc de retour. C'est exactement ce dont vous avez besoin sur un fichier de
configuration où un seul chiffre ou une seule lettre est faux.
rsuivi d'un caractère : remplace le caractère sous le curseur sans passer en mode insertion.
Exemple : le curseur est sur le a de Poat 22. Tapez r puis r →
résultat : Port 22. Rapide, précis, sans changer de mode.
Remplacer plusieurs caractères
Section intitulée « Remplacer plusieurs caractères »Quand la correction porte sur une suite de caractères de même longueur, un
masque de sous-réseau ou un numéro de port par exemple, le mode remplacement
évite de supprimer puis réécrire. Le repère visuel est l'indicateur
-- REPLACE -- en bas de l'écran, à ne pas confondre avec -- INSERT -- :
en mode remplacement, votre frappe écrase le texte existant au lieu de le
décaler. C'est le mode dans lequel les débutants tombent en appuyant sur
Insert par mégarde.
R: active le mode remplacement. Chaque caractère que vous tapez écrase celui qui se trouve sous le curseur. Appuyez surEscpour revenir en mode commande.
Changer un mot ou une ligne
Section intitulée « Changer un mot ou une ligne »La commande c (change) combine suppression et insertion en une seule action :
| Commande | Action |
|---|---|
cw | Supprime le mot et passe en insertion |
cc | Supprime la ligne et passe en insertion |
c$ | Supprime jusqu'à la fin de la ligne et passe en insertion |
Exemple concret : dans un fichier sshd_config, le curseur est sur le mot
yes de la ligne PermitRootLogin yes. Tapez cw, puis tapez no, puis
Esc. Résultat : PermitRootLogin no.
Annuler et répéter
Section intitulée « Annuler et répéter »Ces trois touches sont le filet de sécurité qui rend l'apprentissage de vi sans
risque : tant que vous n'avez pas tapé :w, rien n'est écrit sur le disque
et :q! remet le fichier dans son état d'origine. La commande . mérite une
attention particulière : elle rejoue la dernière modification, pas le
dernier déplacement. Enchaîner n puis . permet donc de corriger occurrence
par occurrence sans retaper la commande.
| Commande | Action |
|---|---|
u | Annule la dernière action (comme Ctrl+Z) |
U | Annule toutes les modifications sur la ligne courante |
. | Répète la dernière commande |
Le comportement de u diffère selon l'implémentation, et la différence est de
taille. Dans vi « original », u n'annule que la dernière action, et un
second u rétablit ce que le premier venait d'annuler : c'est une bascule,
pas un historique. Dans
vim, u annule de manière
illimitée. Le meilleur moyen de savoir laquelle des deux implémentations vous
avez sous les doigts est de faire le test : modifiez une ligne, appuyez deux
fois sur u, et regardez si la modification revient.
Enchaînez ces quatre gestes sur votre fichier de test pour les fixer. Sur un
caractère, r suivi d'une autre lettre le remplace. Sur un mot, cw puis un
nouveau mot puis Esc le change entièrement. u ramène le mot d'origine. Enfin
. rejoue la dernière modification à l'endroit où se trouve le curseur : c'est
cette dernière touche, apparemment anodine, qui change le rythme de travail dans
vi, parce qu'elle transforme une correction en geste répétable.
Copier, couper et coller
Section intitulée « Copier, couper et coller »Dans vi, ces opérations portent des noms différents issus du jargon Unix. Le
vocabulaire compte parce qu'il explique les lettres des commandes : y vient de
yank, p de put. Elles partagent toutes le même emplacement de stockage, le
registre sans nom, ce qui explique qu'une suppression écrase ce que vous
veniez de copier.
| Opération habituelle | Nom dans vi | Commande |
|---|---|---|
| Copier | Yank (tirer) | y |
| Couper | Delete (supprimer) | d |
| Coller | Put (poser) | p |
Copier (yank)
Section intitulée « Copier (yank) »La copie reprend le schéma déjà rencontré avec d : verbe + portée. Le
doublement de la lettre (yy) désigne la ligne entière, comme dd pour la
suppression. La copie ne modifie pas le fichier et ne déplace pas le curseur.
Sur une seule ligne, elle n'affiche aucun message et vous n'avez donc pas
de confirmation visuelle ; à partir de trois lignes, un 3 lignes copiées
s'affiche en bas de l'écran.
| Commande | Ce que ça copie |
|---|---|
yy | La ligne entière |
yw | Un mot |
y$ | Du curseur à la fin de la ligne |
3yy | 3 lignes à partir du curseur |
Couper (delete)
Section intitulée « Couper (delete) »Comme vu dans la section suppression, toute commande d coupe le texte
(il reste en mémoire pour être collé) :
| Commande | Ce que ça coupe |
|---|---|
dd | La ligne entière |
dw | Un mot |
d3w | Trois mots |
Coller (put)
Section intitulée « Coller (put) »Le comportement de p dépend de ce qui a été copié, et c'est la source de
surprise la plus fréquente. Si la copie portait sur des lignes entières
(yy, dd), le collage insère de nouvelles lignes sous la ligne courante. Si
elle portait sur des caractères (yw, y$), le texte s'insère à
l'intérieur de la ligne, juste après le curseur. Le contenu du registre n'est
pas consommé : vous pouvez appuyer sur p plusieurs fois de suite pour
dupliquer un bloc.
| Commande | Action |
|---|---|
p | Colle après le curseur (ou sous la ligne si on a copié une ligne entière) |
P | Colle avant le curseur (ou au-dessus de la ligne) |
Exemple pratique : déplacer une ligne
Section intitulée « Exemple pratique : déplacer une ligne »Imaginons que vous éditez un fichier nginx.conf et qu'une directive est mal
placée. Pour déplacer la ligne 5 vers l'emplacement de la ligne 10 :
-
Aller à la ligne 5 : tapez
:5puisEntrée -
Couper la ligne : tapez
dd -
Aller à la destination : tapez
:9(la ligne 9 est devenue l'ancienne ligne 10 après la coupe) -
Coller en dessous : tapez
p
Les registres nommés
Section intitulée « Les registres nommés »Par défaut, chaque copie ou coupe remplace ce qui était en mémoire. Si vous
avez besoin de stocker plusieurs morceaux de texte, utilisez les
registres nommés (de a à z) :
"ayy → copie la ligne dans le registre a"byy → copie la ligne dans le registre b"ap → colle le contenu du registre a"bp → colle le contenu du registre bLe guillemet double " sert de préfixe : il annonce que la lettre qui suit
désigne un registre, et non une commande. Vous disposez ainsi de 26
emplacements indépendants, a à z, en plus du registre sans nom utilisé par
défaut. Détail utile lors d'un tri de configuration : nommer le registre en
majuscule ("Ayy) ajoute la ligne au contenu déjà stocké dans a au lieu
de l'écraser, ce qui permet de rassembler plusieurs lignes éparses avant de les
coller d'un bloc.
Rechercher et remplacer
Section intitulée « Rechercher et remplacer »Quand vous travaillez sur un fichier de configuration de 200 lignes, chercher un paramètre à l'oeil est inefficace. Vi dispose de commandes de recherche puissantes et d'un système de remplacement comparable au « chercher et remplacer » des éditeurs graphiques.
Rechercher un mot
Section intitulée « Rechercher un mot »La recherche se lance depuis le mode commande avec / pour descendre dans le
fichier et ? pour remonter. Le caractère tapé s'affiche en bas de l'écran,
suivi du motif que vous saisissez, et la recherche démarre à la validation par
Entrée. Le curseur se positionne alors sur la première occurrence
rencontrée dans la direction choisie, à partir de la position courante et non
du début du fichier.
/motifpuisEntrée: cherche vers le bas du fichier?motifpuisEntrée: cherche vers le haut
Exemple : pour trouver toutes les occurrences de Port dans sshd_config :
/PortVi saute à la première occurrence trouvée. Si le motif est absent, l'éditeur
affiche Motif introuvable et laisse le curseur où il était, sans rien
modifier.
Naviguer entre les résultats
Section intitulée « Naviguer entre les résultats »Une fois la recherche lancée, vous n'avez plus à retaper le motif. Deux points à
garder en tête. D'abord, n et N sont relatifs à la direction initiale :
après un ?motif, c'est n qui remonte le fichier. Ensuite, la recherche
boucle en fin de fichier grâce à l'option wrapscan, active par défaut :
vi repart du haut du fichier et signale La recherche a atteint le BAS, et continue en HAUT. Voir ce message veut dire que vous avez fait le tour de
toutes les occurrences.
n: occurrence suivante (dans la même direction)N: occurrence précédente (direction opposée)
Recherche avec motifs simples
Section intitulée « Recherche avec motifs simples »Vi interprète le motif de recherche comme une expression régulière, pas
comme du texte littéral. Cela a une conséquence pratique immédiate : chercher
un chemin comme /etc/ssh/sshd_config échoue si vous oubliez que le . de
sshd_config n'est pas un point mais un joker. Pour chercher un caractère
spécial tel quel, précédez-le d'une barre oblique inverse : /version\.1
ne trouve que version.1.
Les quatre motifs du tableau couvrent la quasi-totalité des besoins en
administration. Les deux derniers, ^ et $, sont les plus rentables : ils
ancrent la recherche en début ou en fin de ligne et évitent les faux positifs
au milieu du texte.
| Motif | Signification | Exemple |
|---|---|---|
. | N'importe quel caractère | /s.rv trouve serv et surv |
* | Zéro ou plusieurs du caractère précédent | /ab*c trouve ac, abc, abbc |
^ | Début de ligne | /^# trouve les lignes commentées |
$ | Fin de ligne | /;$ trouve les lignes terminées par ; |
Remplacer du texte
Section intitulée « Remplacer du texte »La substitution utilise la commande :s en mode Ex. Sa syntaxe se lit toujours
de la même façon : une plage de lignes, puis s, puis le motif cherché,
puis le texte de remplacement, puis des drapeaux. Ce qui change d'un onglet
à l'autre ci-dessous, c'est uniquement la plage et les drapeaux. Sans plage, la
substitution ne touche que la ligne courante ; sans le drapeau g, elle ne
remplace que la première occurrence de chaque ligne. C'est l'oubli du g qui
explique la plupart des substitutions « qui n'ont pas tout remplacé ».
Remplacer la première occurrence sur la ligne :
:s/ancien/nouveau/Remplacer toutes les occurrences sur la ligne :
:s/ancien/nouveau/gRemplacer toutes les occurrences dans le fichier :
:%s/ancien/nouveau/gLe % signifie « toutes les lignes du fichier ».
Demander confirmation à chaque remplacement :
:%s/ancien/nouveau/gcVi affichera chaque occurrence et vous demandera y (oui), n (non)
ou a (tous les restants).
Exemple concret : dans un fichier Apache, vous voulez remplacer le port
8080 par 443 partout :
:%s/8080/443/gEntraînez-vous sur /tmp/test-vi.txt, où une substitution ratée ne coûte rien :
cherchez un mot avec /mot et parcourez les occurrences avec n, remplacez-le
sur la ligne courante avec :s/ancien/nouveau/, puis dans tout le fichier avec
:%s/ancien/nouveau/g. Comparez ensuite le nombre de substitutions annoncé en
bas de l'écran avec ce que vous attendiez : c'est le contrôle le plus simple
d'une substitution, et il révèle immédiatement un g oublié.
Personnalisation minimale
Section intitulée « Personnalisation minimale »Vi est minimaliste, mais quelques réglages le rendent plus confortable. Ces
options s'activent en mode Ex (:) et restent actives le temps de la
session.
Options utiles
Section intitulée « Options utiles »Le tableau se lit par paires : chaque option booléenne s'annule en préfixant son
nom par no. Sur un serveur, deux d'entre elles rendent service immédiatement.
:set number affiche les numéros de ligne, indispensable quand un service
refuse de démarrer en pointant « erreur ligne 87 ». :set autoindent conserve
l'indentation de la ligne précédente, ce qui évite de casser un fichier
YAML en ajoutant une clé. Revers connu de autoindent : coller un bloc déjà
indenté avec la souris produit un escalier, car l'indentation collée s'ajoute à
celle générée. Désactivez l'option avec :set noautoindent avant un
copier-coller volumineux.
| Commande | Ce que ça fait |
|---|---|
:set number | Affiche les numéros de ligne |
:set nonumber | Masque les numéros de ligne |
:set ignorecase | Recherche insensible à la casse |
:set noignorecase | Recherche sensible à la casse |
:set autoindent | Conserve l'indentation lors d'un retour à la ligne |
:set tabstop=4 | Définit la largeur des tabulations à 4 espaces |
:set showmode | Affiche le mode actif en bas (INSERT, REPLACE) |
Pour activer plusieurs options en une seule commande :
:set number autoindent tabstop=4Pour voir toutes les options actives, tapez :set sans argument.
Ces réglages ne survivent pas à la fermeture, parce que vi n'a pas de fichier
de configuration : vous retaperez :set number à chaque ouverture. C'est
l'une des raisons de passer à
vim dès que la machine
n'est plus un système de secours, son fichier .vimrc rendant ces mêmes
options permanentes.
Dépannage : les erreurs de débutant
Section intitulée « Dépannage : les erreurs de débutant »Presque tous les blocages en vi ont la même origine : le mode actif n'est
pas celui que vous croyez. Avant de chercher plus loin, appuyez sur Esc et
regardez la ligne du bas. Deux symptômes font exception, les codes E212 et
E45 : ils viennent des droits sur le fichier, pas du mode, et se règlent
avec sudo ou une écriture forcée. Lisez donc la colonne « Cause » avant la
colonne « Solution », elle vous dit s'il s'agit d'un problème de mode ou de
permissions.
| Problème | Cause | Solution |
|---|---|---|
| Je tape du texte mais rien ne s'affiche | Vous êtes en mode commande | Appuyez sur i pour passer en insertion |
| Des commandes s'exécutent quand je tape | Vous êtes en mode commande alors que vous voulez écrire | Appuyez sur i, a ou o |
| Je n'arrive pas à quitter vi | Vous avez des modifications non sauvegardées | Tapez :wq (sauvegarder et quitter) ou :q! (quitter sans sauvegarder) |
Vi affiche E212: Can't open file for writing | Vous n'avez pas les droits d'écriture | Ouvrez le fichier avec sudo vi fichier |
| Le texte que je tape remplace des caractères | Vous êtes en mode remplacement (R) | Appuyez sur Esc pour revenir en mode commande |
:wq affiche E45: 'readonly' option is set | Le fichier est en lecture seule | Utilisez :w! pour forcer l'écriture (si vous êtes root) |
| J'ai fait une mauvaise manipulation | Vous avez modifié le fichier par erreur | Tapez u pour annuler, ou :q! pour tout abandonner |
Limitations de vi et versions améliorées
Section intitulée « Limitations de vi et versions améliorées »Vi est fiable et universel, mais il a des limites héritées de sa conception en 1976 :
| Ce que vi ne fait pas | Alternative dans vim |
|---|---|
| Pas de coloration syntaxique | :syntax on |
| Annulation limitée à 1 niveau | Annulation illimitée avec u |
| Pas de complétion de texte | Ctrl+n / Ctrl+p |
| Pas de plugins | Des milliers de plugins disponibles |
| Pas de fichier de configuration | .vimrc pour personnaliser de manière permanente |
| Pas d'édition multi-fichier intuitive | Onglets, splits, buffers |
Comment savoir si vous utilisez vi ou vim ?
Section intitulée « Comment savoir si vous utilisez vi ou vim ? »Sur la plupart des distributions Linux modernes, la commande vi lance en
réalité vim (Vi IMproved). Pour vérifier :
vi --version | head -1Si vous voyez VIM - Vi IMproved, vous utilisez déjà vim. Vous pouvez aller directement au guide vim pour découvrir les fonctionnalités avancées.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »- vi est partout : c'est le seul éditeur garanti sur tout système Unix/Linux, y compris les conteneurs minimaux et les modes rescue.
- Le cycle de base :
i(insertion) → texte →Esc(mode commande) →:wq(sauvegarder et quitter). Escramène toujours en mode commande : c'est la seule touche dont l'effet est identique quel que soit le mode actif.- Les commandes suivent une logique :
d+ portée pour supprimer,y+ portée pour copier,c+ portée pour changer. - Chercher est rapide :
/motifpour chercher,npour l'occurrence suivante. - vi n'est qu'un début : une fois les bases acquises, passez à vim pour la coloration syntaxique, les plugins et la personnalisation permanente.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Vim : aller plus loin : Coloration syntaxique, plugins, .vimrc : toutes les fonctionnalités avancées de Vi IMproved.
- Grep : chercher dans les fichiers : Trouvez du texte dans des fichiers sans les ouvrir, directement depuis le terminal.
- Sed : éditer sans ouvrir : Modifiez des fichiers en une seule commande, idéal pour l'automatisation.
- Personnaliser Bash : Configurer .bashrc, le prompt, les alias, bash-it et fzf.
FAQ - Questions Fréquemment Posées
Section intitulée « FAQ - Questions Fréquemment Posées »Définition
vi (abréviation de visual) est un éditeur de texte en ligne de commande créé en 1976 par Bill Joy. Il est installé par défaut sur tous les systèmes Unix et Linux.Pourquoi l'apprendre ?
vi est le seul éditeur garanti présent partout :- Serveur en mode rescue (pas d'autre éditeur installé)
- Conteneur Docker minimal (Alpine, BusyBox)
- Connexion SSH sur un équipement réseau ou système embarqué
- Dépannage en urgence sur un système sans interface graphique
Comparaison avec d'autres éditeurs
| Caractéristique | vi | nano | VS Code |
|---|---|---|---|
| Disponibilité | Partout | Souvent installé | Bureau graphique uniquement |
| Poids | Quelques Ko | Léger | Plusieurs centaines de Mo |
| Courbe d'apprentissage | Forte au début | Facile | Intuitive |
| Fonctionnalités | Basiques | Basiques | Très riches |
| Usage principal | Dépannage serveur | Édition simple | Développement |
Le cycle de base
Le cycle fondamental avec vi se résume en 4 étapes :- Ouvrir :
vi nom_fichier - Écrire : appuyer sur
ipour passer en mode insertion, taper le texte - Revenir en mode commande : appuyer sur
Esc - Sauvegarder et quitter : taper
:wqpuisEntrée
Commandes de sortie
| Commande | Action |
|---|---|
:wq |
Sauvegarder et quitter |
:q! |
Quitter sans sauvegarder |
:w |
Sauvegarder sans quitter |
:q |
Quitter (échoue si modifications non sauvegardées) |
ZZ |
Raccourci pour sauvegarder et quitter (sans :) |
:w nouveau_nom |
Sauvegarder sous un autre nom |
Exemple concret
vi /tmp/test.txt # Ouvrir le fichier
# Appuyer sur i
# Taper du texte
# Appuyer sur Esc
:wq # Sauvegarder et quitter
cat /tmp/test.txt # Vérifier le contenu
Les trois modes
| Mode | Comment y entrer | Rôle | Comment le quitter |
|---|---|---|---|
| Commande | Esc (ou à l'ouverture) |
Naviguer, supprimer, copier, coller | Taper i, a, o ou : |
| Insertion | i, a, o, O |
Écrire du texte | Appuyer sur Esc |
| Ex | : depuis le mode commande |
Commandes longues (:w, :q, :%s/…) |
Entrée ou Esc |
Comment reconnaître le mode actif
| Indicateur en bas d'écran | Mode |
|---|---|
-- INSERT -- |
Mode insertion |
-- REPLACE -- |
Mode remplacement |
: suivi de texte |
Mode Ex |
| Rien de spécial | Mode commande |
Les six portes d'entrée en insertion
| Touche | Insère où | Situation typique |
|---|---|---|
i |
Avant le curseur | Correction au milieu d'un mot |
a |
Après le curseur | Ajouter du texte à la suite |
I |
Au début de la ligne | Ajouter un # devant une ligne |
A |
À la fin de la ligne | Compléter une ligne existante |
o |
Nouvelle ligne en dessous | Ajouter une directive dans un fichier de config |
O |
Nouvelle ligne au-dessus | Insérer une ligne au-dessus |
Exemple concret
Sur la ligne127.0.0.1 localhost dans /etc/hosts :i→ curseur avant le1de127: écrire avanta→ curseur après le1: écrire aprèsA→ curseur à la fin delocalhost: ajouter un aliaso→ nouvelle ligne en dessous : ajouter une entrée
Esc pour revenir en mode commande.Déplacements caractère par caractère
| Touche | Direction | Astuce |
|---|---|---|
h |
Gauche ← | Touche la plus à gauche du groupe |
j |
Bas ↓ | Le j descend sous la ligne |
k |
Haut ↑ | Le k monte (kick vers le haut) |
l |
Droite → | Touche la plus à droite |
Navigation par mots
| Touche | Action |
|---|---|
w |
Mot suivant (début) |
e |
Fin du mot courant |
b |
Mot précédent (début) |
W, E, B sautent entre mots séparés par des espaces.Navigation dans la ligne et le fichier
| Commande | Action |
|---|---|
0 |
Début de la ligne |
$ |
Fin de la ligne |
gg |
Première ligne du fichier |
G |
Dernière ligne du fichier |
:42 |
Aller à la ligne 42 |
H |
Haut de l'écran visible |
M |
Milieu de l'écran |
L |
Bas de l'écran |
Ctrl+f |
Page suivante |
Ctrl+b |
Page précédente |
Marques (signets)
ma: pose un repère nomméa'a: revient à la ligne marquéea
a à z, soit 26 repères possibles.Commandes de suppression
Toutes les commandes de suppression s'utilisent en mode commande et suivent la logiqued + portée :| Commande | Ce que ça supprime | Quand l'utiliser |
|---|---|---|
x |
Caractère sous le curseur | Corriger une faute de frappe |
X |
Caractère avant le curseur | Supprimer en arrière |
dw |
Du curseur au mot suivant | Supprimer un mot |
dd |
La ligne entière | Supprimer une ligne de config |
d$ |
Du curseur à la fin de la ligne | Supprimer la fin d'une ligne |
d0 |
Du curseur au début de la ligne | Supprimer le début d'une ligne |
Supprimer plusieurs lignes
3dd → supprime 3 lignes
5dd → supprime 5 lignes
Suppression = coupe
Tout texte supprimé avecd ou x est stocké en mémoire. Vous pouvez le coller ensuite avec p (après le curseur) ou P (avant le curseur). La suppression fonctionne donc comme un couper-coller.Remplacement rapide
| Commande | Action |
|---|---|
r + caractère |
Remplace le caractère sous le curseur sans changer de mode |
R |
Active le mode remplacement (chaque frappe écrase le caractère suivant) |
Commande change (supprime + insère)
| Commande | Action |
|---|---|
cw |
Supprime le mot et passe en insertion |
cc |
Supprime la ligne et passe en insertion |
c$ |
Supprime jusqu'à la fin de la ligne et passe en insertion |
Exemple concret
Danssshd_config, le curseur est sur yes dans PermitRootLogin yes. Tapez cw, puis no, puis Esc. Résultat : PermitRootLogin no.Annuler et répéter
| Commande | Action |
|---|---|
u |
Annule la dernière action (toggle dans vi original) |
U |
Annule toutes les modifications sur la ligne courante |
. |
Répète la dernière commande |
u fonctionne en bascule : un premier u annule, un second rétablit. Dans vim, l'annulation est illimitée.Correspondance avec les termes habituels
| Opération | Nom dans vi | Commande |
|---|---|---|
| Copier | Yank | y |
| Couper | Delete | d |
| Coller | Put | p |
Copier (yank)
| Commande | Ce que ça copie |
|---|---|
yy |
La ligne entière |
yw |
Un mot |
y$ |
Du curseur à la fin de la ligne |
3yy |
3 lignes à partir du curseur |
Coller (put)
| Commande | Action |
|---|---|
p |
Colle après le curseur ou sous la ligne |
P |
Colle avant le curseur ou au-dessus |
Déplacer une ligne
Pour déplacer la ligne 5 à l'emplacement de la ligne 10 ::5→ aller à la ligne 5dd→ couper la ligne:9→ aller à la ligne 9 (devenue l'ancienne 10 après la coupe)p→ coller en dessous
Registres nommés
Pour stocker plusieurs textes en parallèle, utilisez les registresa à z :"ayy → copie la ligne dans le registre a
"byy → copie la ligne dans le registre b
"ap → colle le contenu du registre a
"bp → colle le contenu du registre b
Recherche simple
| Commande | Action |
|---|---|
/motif |
Recherche vers le bas du fichier |
?motif |
Recherche vers le haut |
n |
Occurrence suivante (même direction) |
N |
Occurrence précédente (direction opposée) |
Exemple
/Port → cherche le mot Port vers le bas
n → occurrence suivante
N → occurrence précédente
Expressions régulières basiques
| Motif | Signification | Exemple |
|---|---|---|
. |
N'importe quel caractère | /s.rv trouve serv et surv |
* |
Zéro ou plusieurs du caractère précédent | /ab*c trouve ac, abc, abbc |
^ |
Début de ligne | /^# trouve les lignes commentées |
$ |
Fin de ligne | /;$ trouve les lignes terminées par ; |
Syntaxe de substitution
| Commande | Portée |
|---|---|
:s/ancien/nouveau/ |
Première occurrence sur la ligne courante |
:s/ancien/nouveau/g |
Toutes les occurrences sur la ligne courante |
:%s/ancien/nouveau/g |
Toutes les occurrences dans tout le fichier |
:%s/ancien/nouveau/gc |
Tout le fichier avec confirmation à chaque remplacement |
Le % signifie toutes les lignes du fichier.
Exemple concret
Remplacer le port 8080 par 443 dans un fichier Apache ::%s/8080/443/g
Confirmation interactive
Avec le flagc, vi affiche chaque occurrence et demande :y: oui, remplacern: non, passera: remplacer tous les restants
:%s/8080/443/gc
Problèmes fréquents
| Problème | Cause | Solution |
|---|---|---|
| Je tape du texte mais rien ne s'affiche | Vous êtes en mode commande | Appuyez sur i |
| Des commandes s'exécutent quand je tape | Vous voulez écrire mais êtes en mode commande | Appuyez sur i, a ou o |
| Je n'arrive pas à quitter | Modifications non sauvegardées | :wq ou :q! |
E212: Can't open file for writing |
Pas de droits d'écriture | Utilisez sudo vi fichier |
| Le texte remplace des caractères | Mode remplacement actif (R) |
Appuyez sur Esc |
E45: 'readonly' option is set |
Fichier en lecture seule | :w! si vous êtes root |
| Mauvaise manipulation | Modification par erreur | u pour annuler ou :q! pour abandonner |
La règle d'or
Quand vous êtes perdu dans vi, appuyez surEsc deux ou trois fois. Cela vous ramène toujours en mode commande. Ensuite, tapez :q! pour quitter sans sauvegarder.Comparaison
| Fonctionnalité | vi | vim |
|---|---|---|
| Coloration syntaxique | Non | Oui (:syntax on) |
| Annulation | 1 niveau (toggle) | Illimitée |
| Complétion de texte | Non | Ctrl+n / Ctrl+p |
| Plugins | Non | Des milliers disponibles |
| Configuration persistante | Non | Fichier .vimrc |
| Édition multi-fichier | Basique | Onglets, splits, buffers |
| Disponibilité | Partout | Presque partout |
Vérifier ce que vous utilisez
Sur la plupart des distributions modernes,vi lance en réalité vim :vi --version | head -1
Si vous voyez VIM - Vi IMproved, vous utilisez déjà vim.Quand passer de vi à vim
- vi suffit pour les éditions rapides en dépannage et les corrections ponctuelles
- vim est préférable pour le développement, l'édition de multiples fichiers et les sessions d'édition longues
Options utiles
| Commande | Effet |
|---|---|
:set number |
Affiche les numéros de ligne |
:set nonumber |
Masque les numéros de ligne |
:set ignorecase |
Recherche insensible à la casse |
:set noignorecase |
Recherche sensible à la casse |
:set autoindent |
Indentation automatique |
:set tabstop=4 |
Largeur des tabulations à 4 espaces |
:set showmode |
Affiche le mode actif en bas |
Activer plusieurs options
:set number autoindent tabstop=4
Voir les options actives
Tapez:set sans argument.Limitation importante
Vi n'a pas de fichier de configuration. Tous les réglages sont perdus à la fermeture. Pour des options permanentes, il faut passer à vim et créer un fichier.vimrc.