Skip to Content

Les commandes et options de VI / VIM

Vi est un puissant éditeur de textes. On le rencontre souvent sous linux dans une version améliorée appelée vim. L’utilisation de vi est complexe pour le débutant, mais les efforts d’apprentissage sont récompensés par la puissance et la rapidité des tâches que l’on peut exécuter avec un peu de pratique.

Options

Option Commentaire
-b Mode binaire. Permet l’édition d’un fichier binaire ou exécutable.
-g Active l’interface graphique si vi a été compilé avec le support d’une interface graphique. Équivalent à la commande gvim pour la version améliorée de vi, vim.
-r fichier Mode récupération. Le fichier d’échange fichier est utilisé pour récupérer une session après un crash.
-v Mode vue. L’option lecture seule est activée. L’édition est cependant possible mais le fichier est protégé contre un effacement accidentel et il faut forcer l’écrasement avec le point d’exclamation.
Marque la fin des options. Cela permet d’éditer un fichier dont le nom commence par un tiret.

Les modes vi :

Vi possède deux modes de fonctionnement :

  •  Le mode commande (Mode par défaut au démarrage).
  •  Le mode insertion.

    Le mode commande

    Le mode commande est actif dès le lancement. On peut alors :

  •  Activer le mode insertion.
  •  Lancer les commandes d’édition du texte.
  •  Déplacer le curseur dans le fichier.
  •  Lancer un shell.
  •  Sauvegarder le fichier ou quitter l’éditeur.

    Le mode insertion

    La saisie du texte se fait en mode insertion . On quitte le mode insertion avec la touche Echap et l’on se retrouve alors en mode commande . L’activation du mode insertion se fait avec les commandes suivantes :

    Touche Commentaire
    a Insertion après le curseur.
    A Insertion en fin de ligne.
    c Début d’une opération de remplacement.
    C Remplacement jusqu’en fin de ligne.
    i Insertion avant le curseur.
    I Insertion en début de ligne.
    o Insertion à la ligne suivante.
    O Insertion à la ligne précédente.
    R Active le mode écrasement.
    s Remplace un caractère.
    S Remplace une ligne entière.

    Déplacement du curseur

    Touche Commentaire
    h Un caractère vers la gauche .
    j Un caractère vers le bas.
    k Un caractère vers le haut.
    l ou ESPACE Un caractère vers la droite.

    Texte

    Touche Commentaire
    w ou W Début du mot suivant.
    b ou B Début du mot courant.
    e ou E Fin du mot courant.
    ) Début de la phrase suivante.
    ( Début de la phrase précédente.

    }

    Début du paragraphe suivant.

    {

    Début du paragraphe précédent.
    ] Début de la section suivante.
    [ Début de la section précédente.

    Lignes

    Touche Commentaire
    ^ Début de ligne.
    $ Fin de ligne.
    - Premier caractère de la ligne précédente.
    + ou Entrée Premier caractère de la ligne suivante.
    H Première ligne de l’écran.
    L Dernière ligne de l’écran.
    ] Début de la section suivante.
    [ Début de la section précédente.

    Écrans

    Touche Commentaire
    CTRL-f Avance d’un écran.
    CTRL-b Recule d’un écran.
    z Entrée Positionne la ligne active en haut de l’écran.
    z. Positionne la ligne active au centre de l’écran.
    z- Positionne la ligne active en bas de l’écran.

    Recherche

    Touche Commentaire
    / motif Recherche motif vers l’avant.
    / Répétition de la recherche vers l’avant.
     ? motif Recherche motif vers l’arrière.
     ? Répétition de la recherche vers l’arrière.
    n Répète la dernière opération de recherche.
    % Déplacement vers le crochet, la parenthèse ou l’accolade correspondant à celui ou se trouve le curseur.

    Commandes d’édition

    Saisie de texte

    Touche Commentaire
    a Insertion après le curseur.
    A Insertion en fin de ligne.
    i Insertion avant le curseur.
    I Insertion en début de ligne.
    Esc Fin du mode édition.
    Entrée Passe à la ligne suivante.

    Modification de texte

    Touches Commentaire
    cw Modifie le mot courant.
    cc Modifie la ligne courante.
    C Modifie du curseur jusqu’à la fin de la ligne.
    dd Supprime la ligne en cours.
    dw Supprime le mot courant.
    D Efface du curseur à la fin de la ligne.
    d^ Efface du début de la ligne jusqu’au curseur.
    d/ motif Efface jusqu’à la première occurrence de motif .
    p Insère après le curseur la dernière portion de texte supprimée ou copiée.
    P Insère avant le curseur la dernière portion de texte supprimée ou copiée.
    rx Remplace le caractère courant par x.
    R Active le mode remplacement de texte.
    u Annule la dernière opération.
    U Annule toutes les opérations effectuées sur la ligne courante.
    . Répète la dernière opération.
    ~ Change la casse du caractère sous le curseur.
    J Fusionne deux lignes (join).

    Copie et déplacement de texte

    Touches Commentaire
    Y Copie la ligne courante dans un nouveau tampon.
    yy Copie la ligne courante.
    "xyy Copie la ligne courante dans le tampon x.
    "xd Supprime la ligne courante et la place dans le tampon x.
    "Xd Supprime la ligne courante et l’ajoute au tampon x.
    "xp Insère le contenu du tampon x.

    Sauvegarder et quitter

    Touches Commentaire
    ZZ Quitte l’éditeur et enregistre le fichier s’il a été modifié.
    :x Identique à ZZ.
    :w Enregistre le fichier.
    :wq Enregistre le fichier et quitte l’éditeur.

    :w!

    Enregistre le fichier en passant outre les protections (fichier ouvert en lecture seule, par exemple).
    :q Quitte l’éditeur.

    :q!

    Quitte l’éditeur sans enregistrer les dernières modifications.
    :e fichier Édite le fichier fichier sans quitter vi.
    :n Édite le fichier suivant.
    :n fichiers Spécifie une nouvelle liste de fichiers .
    :args Affiche la liste des fichiers à éditer.

    Commandes "shell"

    Touches Commentaire
    :r fichiers Insère le contenu de «  fichier » .

    :r! commande

    Insère le résultat de «  commande » .

    :n1,n2! commande

    Envoie les lignes n1 à n2 à «  commande » et les remplace par la sortie de «  commande » .
     !! Répète la dernière commande système.

    Historique des modifications

    Version Date Commentaire
    0.1 2002 Thierry COLAS, auteur original du document « Lignes de commandes - le pense bête de COAGUL »
    0.2 2004 Marc POIROUD pour la conversion en LATEX , PDF et HTML. Gnunux, pour sa relecture
    0.3 11/03/05 Tony pour la conversion au format OOo / Spip et le découpage en 7 articles.
  • Commentaires

    > Les commandes et options de VI / VIM

    1/ Je pense que tu as raison

    2/ Je n’ai pas compris ce que tu voulais dire. Si tu penses qu’il faut ajouter un espace denvant ":w !", je ne suis pas d’accord.

    > Les commandes et options de VI / VIM

    Bon je viens de voir un autre article, je retire le point 3/ ;)

    > Les commandes et options de VI / VIM

    1/ C’est "-" ou "—" ? Généralement on met "—" et je ne trouve pas "-" dans le man (imense de vim) mais "—". Donc j’ai un doute :)

    extrait du man :

    — Denotes the end of the options. Arguments after this will
    be handled as a file name. This can be used to edit a
    filename that starts with a ’-’.

    2/ ":w !" ":q !" il n’y a pas d’espace. (c’est ":w !" et ":q !")

    3/ Concernant l’historique du document, je pense que c’est un copier malencontreux non ? Je ne me souviens pas avoir vu parlé de vim dans le document cité.