Commandes vi sous Linux : aide-mémoire | les 3 modes de Vim et le mode visuel

Mention d'affiliation v3.1
Mention d'affiliation v3.2 (mobile)
Environnement de testFamille RHELAlmaLinux 9.8Compte rootVérifié le 2026-10-07

Ouvrir vi et constater que rien de ce que l'on tape ne s'affiche, ou fermer la fenêtre faute de savoir en sortir : presque tout le monde passe par là la première fois qu'il touche à un serveur. La commande vi sous Linux, autrement dit l'éditeur vi, sépare le mode normal et le mode insertion : une fois que vous savez dans quel mode vous êtes, le reste se fait avec quelques touches. Cet article présente les trois modes et les commandes de chaque mode sous forme de tableaux, et vous permet d'essayer vi vous-même sur un serveur virtuel dans le navigateur.

Sous AlmaLinux 9.8, vi et vim proviennent tous deux du paquet vim 8.2, et les écrans et messages de cet article viennent de vim. S'il n'est pas installé, installez-le avec [dnf -y install vim-enhanced].

Schéma du passage entre les trois modes de la commande vi sous Linux Linux vi command: three modes diagram

✅ Les trois modes de vi

Dans vi, une même touche fait une chose différente selon le mode. Un fichier s'ouvre en mode normal ; i fait passer en mode insertion pour taper du texte, Esc ramène au mode normal, et les deux-points [:] ouvrent le mode ligne de commande pour enregistrer et quitter.

ModeTouche pour y entrerRôle
Mode normalMode de départ de vi · Esc depuis un autre modeDéplacer le curseur, supprimer, copier, coller, annuler
Mode insertioni a I A o OSaisie du texte. En bas de l'écran : [-- INSERT --]
Mode ligne de commande:Enregistrer, quitter, remplacer, régler les numéros de ligne. Un : s'affiche en bas de l'écran
Mode visuelv V Ctrl-vSélectionner une zone, puis supprimer, copier ou saisir sur toutes les lignes à la fois

Dans la console, il existe trois façons d'ouvrir un fichier.

CommandeDescription
vi fichierOuvre le fichier en mode normal. S'il n'existe pas, il est créé et [New] s'affiche
vi +20 fichierOuvre avec le curseur sur la ligne 20
view fichier= vi -ROuvre en lecture seule. Une modification déclenche l'avertissement [W10], un enregistrement l'erreur [E45]

Tapez [vi httpd.conf] sur le serveur virtuel ci-dessous : vi s'ouvre et le menu de gauche passe aux commandes de vi. Un clic sur une puce saisit cette touche à l'écran ; vous pouvez aussi la taper au clavier.

Simulateur de commandes vivim 8.2
[root@server work]#
Fonctionne uniquement dans votre navigateur et ne touche à aucun vrai fichier. Ouvrez d'abord un fichier avec vi httpd.conf : le menu de gauche passe alors aux commandes de vi. Un clic sur une puce saisit cette touche à l'écran, mais vous pouvez aussi la taper au clavier. Après avoir enregistré et quitté avec :wq, vérifiez le résultat avec cat ; si vous vous emmêlez, cliquez sur [Recommencer]. Essayez vous-même les autres touches des tableaux.

✅ Aide-mémoire des commandes vi sous Linux

🔲 Déplacer le curseur

ToucheDescription
h j k l← ↓ ↑ →Déplacement d'un caractère. Les flèches marchent aussi
0 · ^Début de ligne (0) · premier caractère non blanc de la ligne (^)
$Fin de ligne
w · b · eDébut du mot suivant · début du mot précédent · fin du mot suivant
gg · GPremière · dernière ligne du fichier
20Gcomme :20Aller à la ligne 20. Changez le nombre pour aller à n'importe quelle ligne
H · M · LLigne du haut · du milieu · du bas de l'écran
Ctrl-f · Ctrl-bUn écran plus bas · plus haut
Ctrl-d · Ctrl-uUn demi-écran plus bas · plus haut

🔲 Passer en mode insertion

Quelle que soit la touche utilisée pour y entrer, appuyez sur Esc une fois la saisie terminée. cw, cc, C et s suppriment puis passent aussitôt en mode insertion : pour corriger un mot ou une ligne, c'est plus rapide que d'appuyer séparément sur x et i.

ToucheDescription
i · aCommencer la saisie avant (i) · après (a) le curseur
I · ACommencer la saisie en début (I) · en fin (A) de ligne
o · OCréer une ligne vide en dessous (o) · au-dessus (O) et commencer la saisie
cwEffacer du curseur à la fin du mot et commencer la saisie
ccEffacer toute la ligne et commencer la saisie
CEffacer du curseur à la fin de la ligne et commencer la saisie
sEffacer un caractère et commencer la saisie
EscTerminer la saisie et revenir au mode normal

🔲 Supprimer et modifier

Ajoutez une touche de déplacement après d pour supprimer la zone correspondante. dw supprime un mot, dd une ligne, dG tout jusqu'à la fin du fichier, et un nombre placé devant répète l'action autant de fois.

ToucheDescription
x · XSupprimer le caractère sous le curseur (x) · avant le curseur (X). 3x en supprime trois
dwSupprimer du curseur à la fin du mot
ddSupprimer la ligne. 3dd en supprime trois
D= d$Supprimer du curseur à la fin de la ligne
d0Supprimer du début de la ligne jusqu'au curseur
dGSupprimer de la ligne actuelle jusqu'à la fin du fichier
:6d · :6,10dSupprimer la ligne 6 · les lignes 6 à 10
JJoindre la ligne suivante à la fin de la ligne actuelle
rRemplacer le caractère sous le curseur par le prochain caractère tapé
~Inverser la casse
>> · <<Indenter · désindenter la ligne

🔲 Copier, coller et annuler

Ce qui a été supprimé se colle avec p comme une copie : enchaîner dd puis p fait descendre une ligne. u remonte plusieurs étapes en arrière, et Ctrl-r rétablit ce qui a été annulé.

ToucheDescription
yyCopier la ligne. 3yy en copie trois
ywCopier du curseur à la fin du mot
p · PColler en dessous (p) · au-dessus (P). Pour une copie de caractères : après · avant le curseur
:1 co 7comme :1 t 7Copier la ligne 1 sous la ligne 7
:1,7 co 8Copier les lignes 1 à 7 sous la ligne 8
:1 m 8Déplacer la ligne 1 sous la ligne 8
uAnnuler. Appuyer plusieurs fois remonte encore
Ctrl-rRétablir ce qui a été annulé
.Répéter la dernière modification

🔲 Rechercher et remplacer

Le remplacement se fait en mode ligne de commande. Sans plage, il ne vise que la ligne actuelle ; avec [%], tout le fichier ; et sans g à la fin, seule la première occurrence de chaque ligne change.

ToucheDescription
/chaîneRechercher vers le bas à partir du curseur. Arrivée à la fin, la recherche reprend au début [search hit BOTTOM, continuing at TOP]
?chaîneRechercher vers le haut à partir du curseur
n · NRésultat suivant dans le même sens (n) · dans le sens inverse (N)
*Rechercher vers le bas le mot sous le curseur
:s/old/new/Remplacer le premier old de la ligne actuelle par new
:s/old/new/gRemplacer tous les old de la ligne actuelle par new
:%s/old/new/gRemplacer tous les old du fichier par new
:10,20s/old/new/gRemplacer tous les old des lignes 10 à 20 par new
:%s/old/new/gcRemplacer en confirmant chaque occurrence (y remplacer · n passer · a tout · q arrêter)

🔲 Enregistrer, quitter et numéros de ligne

ToucheDescription
:wEnregistrer. Ensuite s'affiche [36L, 1094B written]
:w fichierEnregistrer sous un autre nom. Le fichier d'origine reste inchangé
:wq= :⁠x = ZZEnregistrer et quitter
:qQuitter. En cas de modifications non enregistrées : [E37: No write since last change]
:q!Quitter sans enregistrer
:set nu · :set nonuAfficher · masquer les numéros de ligne

✅ Commenter une colonne d'un coup avec le mode visuel bloc de Vim

Pour insérer le même texte au début de plusieurs lignes, utilisez le mode visuel bloc au lieu d'appuyer sur i à chaque ligne. En mode normal, v sélectionne par caractères, Shift-v par lignes et Ctrl-v par colonnes.

Schéma des trois types de mode visuel de vim vim visual mode: three kinds diagram

Voici comment commenter d'un coup tout un bloc d'un fichier de configuration : placez le curseur sur le premier caractère de la première ligne, appuyez sur Ctrl-v, descendez avec j pour sélectionner les lignes, puis appuyez sur I, tapez # et appuyez sur Esc.

Lancer le mode visuel bloc dans vim
1. Ctrl-v sur le premier caractère de la première ligne affiche [– VISUAL BLOCK –].
Sélection des lignes au curseur en mode visuel bloc de vim
2. Descendez avec j pour sélectionner toutes les lignes à commenter.
Saisie en mode visuel bloc de vim
3. Après I puis #, le caractère n'apparaît que sur la première ligne.
Modification de colonne terminée en mode visuel bloc de vim
4. Esc ajoute # à toutes les lignes sélectionnées.

Pour retirer les commentaires, c'est pareil : sur le # de la première ligne, sélectionnez vers le bas avec Ctrl-v, puis appuyez sur x : la colonne sélectionnée est effacée d'un coup. Vous pouvez le faire tel quel avec vhost.conf dans le simulateur ci-dessus.

  • Commandes vi et vim
  • Commandes de traitement de texte
  • Structure de l'éditeur vi : mode normal, mode insertion et mode ligne de commande

ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain : 1   +   8   =