Gentoo Logo

Apprendre vi, la technique de « la feuille de triche »

Table des matières :

1.  Pour démarrer

Introduction

Ce tutoriel va vous montrer comment utiliser vi, un éditeur de texte puissant. En utilisant une méthode spéciale accélérée de « feuille de triche », ce tutoriel est conçu pour faire de vous un utilisateur de vi compétent sans vous y faire passer trop de temps. Dans ce tutoriel sur vi, vous apprendrez comment vous déplacer, éditer du texte, utiliser le mode insertion, copier et coller du texte, et utiliser des extensions importantes de vi comme le mode visuel et l'édition multi-fenêtres.

Si vous ne savez pas vous servir de vi ou que vous n'y êtes pas à l'aise, vous vous devez de lire ce tutoriel pour devenir efficace avec l'un des éditeurs de texte les plus populaires et les plus puissants sous Linux/UNIX.

À propos de ce guide

Il y a une chose en particulier qui rend l'apprentissage de vi difficile : vi a beaucoup de commandes. Pour se servir de vi efficacement, vous avez besoin d'en mémoriser quelques-unes. Ça peut prendre pas mal de temps et un des objectifs de ce tutoriel est de ne pas vous prendre beaucoup de temps. Donc, pour commencer, le défi : comment vais-je vous aider à mémoriser une foule de commandes en peu de temps ?

Pour relever ce défi, avec ce tutoriel, nous allons mettre au point progressivement une « feuille de triche » pour vi. Cette feuille contiendra toutes les commandes importantes. Quand vous aurez fini ce tutoriel, vous pourrez vous y référer si vous avez oublié une commande en particulier. Au fur et à mesure que vous mémoriserez des commandes, vous pourrez vous passer progressivement de la feuille de triche. En utilisant cette technique, vous apprendrez vi plus vite qu'il n'a jamais été possible !

Le processus d'apprentissage

Dans ce guide, je vais utiliser plusieurs techniques pour vous aider à apprendre. D'abord, je vais vous montrer comment marche une commande en particulier, comme vous vous y attendez. Ensuite, je vous demanderai d'essayer d'utiliser cette commande dans vi (pour vous entraîner), puis de transcrire la commande sur la feuille de triche (pour vous y référer plus tard). Si vous voulez apprendre vi rapidement, il est important de suivre toutes ces étapes. Essayer les commandes dans vi et les noter sur votre feuille de triche vous aidera à les mémoriser.

Présentation de vim

Il existe plusieurs versions de vi et je vais vous montrer comment vous servir d'une version de vi appelée vim. vim est très populaire et possède quantité d'extensions qui le rendent encore meilleur. Chaque fois que j'expliquerai une commande propre à vim, je le signalerai. Si vous avez besoin d'installer vim, vous pouvez le récupérer sur www.vim.org. En plus du vi amélioré en ligne de commande, vim inclut gvim, un éditeur graphique sympa qui peut être configuré pour utiliser l'excellente librairie graphique GTK+. Voici une capture d'écran de mon système :


Figure 1.1 : Capture d'écran de VIM

Fig. 1: capture d'écran

Si vous débutez avec vi, essayez d'installer gvim sur votre système. Utiliser vi à partir de l'interface graphique peut rendre les choses plus faciles pour les débutants.

2.  Premiers pas

Ouvrir un fichier

Avant d'éditer des fichiers avec vi, vous devez savoir comment vous déplacer dans un fichier. vi a beaucoup de commandes de déplacement et nous allons voir beaucoup d'entre elles. Pour cette partie du tutoriel, cherchez un fichier texte sans importance et chargez-le dans vi en tapant :

Exemple de code 2.1 : Ouvrir un fichier avec vi

$ vi monfichier.txt

Si vim est installé, tapez vim monfichier.txt. Si vous préferez utiliser gvim, tapez gvim monfichier.txt. monfichier.txt est le nom du fichier texte sur votre système.

Dans vi

Une fois vi lancé, vous devriez voir à l'écran une partie du fichier texte que vous avez ouvert. Félicitations, vous êtes dans vi ! A la différence de beaucoup d'éditeurs, quand vi démarre, il est dans un mode spécial appelé le mode commande. Cela signifie que si vous appuyez sur l au clavier, au lieu d'insérer un l dans le fichier à la position actuelle du curseur, le curseur va se déplacer d'un caractère vers la doite. En mode commande, les touches de votre clavier sont utilisées pour envoyer des commandes à vi plutôt que d'insérer littéralement les caractères dans le texte. Parmi les types de commandes les plus importantes, il y a les commandes de déplacements ; regardons-en quelques-unes.

3.  Déplacements

Se déplacer dans vi, partie 1

En mode de commande, vous pouvez utiliser les touches h,j,k et l pour déplacer le curseur respectivement à gauche, en bas, en haut et à droite. Si vous utilisez une version récente de vi, vous pouvez également utiliser les touches fléchées pour ces déplacements. Les touches h,j,k et l sont pratiques, car une fois que vous serez à l'aise avec elles, vous n'aurez plus besoin de déplacer les doigts vers les touches fléchées. Essayez d'utiliser les touches h,j,k et l (et les touches fléchées) pour vous déplacer dans le fichier texte. Essayez de faire h jusqu'à ce que vous soyez au début de la ligne. Remarquez que vi ne permet pas « d'enchaîner » vers la ligne précédente en appuyant sur h lorsque vous êtes sur le premier caractère. De même, vous ne pouvez pas passez à la ligne suivante en appuyant sur l à la fin d'une ligne.

Se déplacer dans vi, partie 2

vi offre des raccourcis spéciaux pour sauter au début ou à la fin de la ligne courante. Vous pouvez appuyer sur 0 (zéro) pour sauter au premier caractère de la ligne, et sur $ pour sauter au dernier caractère de la ligne. Essayez pour voir. Comme vi a beaucoup de commandes de déplacement pratiques, ça en fait un super « afficheur » (comme les commandes more ou less.) Utiliser vi comme afficheur vous aidera également à apprendre les commandes de déplacement très rapidement.

Vous pouvez également utiliser <CTRL>F et <CTRL>B pour vous déplacer page par page. Les versions modernes de vi (comme vim) vous permettrons également d'utiliser les touches Page suivante et Page précédente pour ces déplacements.

Déplacements par mots, partie 1

vi vous permet aussi de vous déplacer à droite ou à gauche d'un mot. Pour vous déplacer au premier caractère du mot suivant, appuyez sur w. Pour le dernier caractère du mot suivant, appuyer sur e. Pour vous déplacer au premier caractère du mot précédent, faite b. Testez ces commandes.

Déplacements par mots, partie 2

Après avoir joué avec les commandes de déplacement par mots, vous avez pu constater que vi considère les mots du genre foo-bar-oni comme 5 mots distincts ! C'est parce que par défaut, vi délimite les mots par des espaces ou des caractères de ponctuation. foo-bar-ni est donc considéré comme cinq mots : foo, -, bar, -, oni.

Parfois, c'est ce que vous voulez, et parfois pas. Heureusement, vi comprend également le concept de « grand mot ». Par défaut, vi délimite les grands mots par des espaces et des retours à la ligne uniquement. Ça veut dire que vi considère foo-bar-oni à la fois comme cinq mots et à la fois comme un grand mot.

Déplacements par mots, partie 3

Pour vous déplacer au grand mot suivant ou précédent, vous pouvez utiliser la version capitalisée de la commande de déplacement par mot. Utilisez W pour vous déplacer au premier caractère du grand mot suivant, E pour le dernier caractère du grand mot suivant et B pour vous déplacer au premier caractère du grand mot précédent. Testez cela, et comparez la reconnaissance des mots et des grands mots par les commandes de déplacement jusqu'à ce que vous ayez compris leurs différences.

Déplacements plus importants

Nous avons encore quelques commandes à parcourir avant qu'il soit temps de commencer ensemble notre première feuille de triche. Vous pouvez utiliser les caractères ( et ) pour vous déplacer au début de la phrase précédente ou suivante. En plus, vous pouvez presser { ou } pour sauter au début du paragraphe courant ou suivant. Testez-les.

4.  Quitter

On a vu les commandes de déplacement de base, mais il y a quelques autres commandes que vous avez besoin de connaître. Taper :q quittera vi. Si ça ne marche pas, c'est que vous avez probablement modifié accidentellement le fichier, d'une manière ou d'une autre. Pour dire à vi de quitter en ignorant les modifications, tapez :!q. Vous devriez revenir à l'invite de commande.

Dans vi, toute commande commençant par un : est appelée commande ex-mode. Ceci parce que vi a un éditeur non visuel intégré appelé ex. On peut s'en servir de façon similaire à sed pour effectuer des opérations d'édition par ligne. De plus, On peut aussi s'en servir pour quitter, comme on vient de le voir. Dès que vous tapez Q en mode commande, vous passerez en mode ex. Vous serez alors confronté à une invite avec un « : », et appuyer sur entrée fera défiler tout l'écran vers le haut. Pour revenir au bon vieux mode vi, tapez simplement vi et tapez entrée.

5.  La feuille de triche

Début de la feuille de triche

Nous venons de voir pas mal de commandes et il est temps de les noter sur notre feuille de triche. Pour ça, vous aurez besoin d'une feuille au format lettre US ou A4 (nous y noterons beaucoup d'informations !) Voilà une image de la mienne après y avoir noté toutes les commandes vues jusqu'ici. Essayez de suivre le même modèle si possible pour qu'on arrive à tout y mettre.


Figure 5.1 : Première partie de la feuille de triche

Fig. 1: Première partie de la feuille de triche

Divers vi

Continuons notre survol des commandes. En mode commande, vous pouvez vous déplacer vers une ligne en particulier en faisant G. Pour aller à la première ligne d'un fichier, tapez 1G. Remarquez que le G est en majuscule.

Si vous voulez vous déplacer à la prochaine occurrence d'un motif particulier de texte, tapez /<regexp> puis entrée. Remplacez <regexp> par l'expression rationnelle que vous cherchez. Si vous ne connaissez pas les expressions rationnelles, ne vous inquiétez pas, taper /foo vous amènera à la prochaine occurrence de foo. La seule chose importante à noter à ce sujet, c'est de faire attention quand vous utilisez les caractères ^, ., $ ou \. Faites-les précéder d'un barre oblique arrière (\), et ça marchera. Par exemple, /foo\.gif recherchera la prochaine occurrence de foo.gif.

Pour poursuivre une recherche vers l'avant, faites n. Pour répéter la recherche vers l'arrière, faite N. Comme toujours, testez ces commandes dans votre propre éditeur vi. Vous pouvez aussi taper // pour répéter la dernière recherche.

6.  Sauver et éditer

Sauver et sauver sous...

Nous avons vu comment vous pouvez utiliser la commande ex :q pour quitter vi. Si vous voulez sauver vos modifications, tapez :w. Si vous voulez sauvegarder vos modifications dans un autre fichier, tapez :w nomfichier.txt pour sauvegarder sous nomfichier.txt. Si vous voulez sauver et quitter, faites :x ou :wq.

Dans vim (et d'autres éditeurs vi évolués, comme elvis), vous pouvez avoir plusieurs fichiers ouverts simultanément. Pour ouvrir un fichier dans une nouvelle fenêtre, tapez :sp nomfichier.txt. nomfichier.txt apparaîtra dans une nouvelle fenêtre partagée. Pour vous déplacer entre les fenêtres, tapez <CTRL>w<CTRL>w (Contrôle-w deux fois). Toute commande :q, :q!, :w et :x que vous taperez ne s'appliquera qu'à la fenêtre active.

Edition simple

Maintenant, il est temps d'apprendre quelques simples commandes d'édition. Les commandes que nous allons voir sont considérées simples parce qu'elles se font en mode commande. Les commandes d'édition plus complexes vous font passer automatiquement en mode édition, un mode qui vous permet de saisir du texte directement à partir du clavier. Nous verrons le mode édition et les commandes complexes un peu plus loin.

Pour le moment, essayez de vous placer sur des caractères et d'appuyer plusieurs fois sur x. Vous verrez que x supprime le caractère sous le curseur. Maintenant, déplacez-vous au milieu d'un paragraphe n'importe où dans votre fichier texte et faites J (en majuscule). Vous verrez que la commande J dit à vi de concaténer la ligne suivante à la fin de la ligne actuelle. Maintenant, placez-vous sur un caractère et tapez r, puis un nouveau caractère ; vous verrez que le caractère original a été remplacé. Pour finir, placez-vous sur n'importe quelle ligne et tapez dd. Vous verrez que dd supprime la ligne actuelle du texte.

Répéter et supprimer

Vous pouvez répéter n'importe quelle commande d'édition grace à la touche « . » (le point). Si vous essayez, vous verrez que taper dd... supprime 4 lignes, et que J... concatène 4 lignes. Comme d'habitude, vi fournit d'autres raccourcis pratiques.

Pour supprimer du texte, vous pouvez également utiliser la commande d combinée avec n'importe quelle commande de déplacement. Par exemple, dw supprimera à partir de la position courante jusqu'au début du mot suivant ; d) supprimera jusqu'à la fin de la phrase suivante, et d} supprimera la fin du paragraphe. Expérimentez la commande d et les autres commandes d'édition jusqu'à ce que vous soyez à l'aise avec.

Annuler !

Maintenant que vous avez testé la suppression, c'est le bon moment pour regarder comment annuler les modifications. En appuyant sur u, la version originale de vi permettait d'annuler la dernière édition uniquement. Par contre, les versions modernes de vi comme vim vous permettront d'appuyer sur u plusieurs fois pour continuer à annuler les modifications apportées au fichier. Essayez de combiner quelques commandes d et u ensemble.

Mise à jour de la feuille de triche

C'est le moment de mettre à jour notre feuille de triche. Après y avoir ajouté les commandes vues jusqu'à présent, votre feuille de triche devrait ressembler à ça :


Figure 6.1 : Feuille de triche avec les commandes d'édition

Fig. 1: Feuille de triche

7.  Mode insertion

Le mode insertion

Jusqu'à présent, nous avons vu comment se déplacer dans vi, ouvrir et fermer des fichiers et réaliser des opérations d'édition simples. Cependant, je ne vous ai pas encore montré comment saisir du texte librement ! C'était intentionnel, parce que le mode insertion est un peu compliqué au début. Néanmoins, quand vous serez à l'aise avec le mode insertion, sa complexité (et sa flexibilité) vous seront précieuses.

En mode insertion, vous pourrez entrer du texte directement, comme dans beaucoup d'autres éditeurs de texte. Une fois que vous avez saisi vos modifications, appuyez sur Échap. pour revenir en mode commande. Vous pouvez passer en mode insertion en appuyant sur i ou a. Si vous faites i, votre texte sera inséré avant le caractère courant, et si vous faites a, votre texte sera ajouté après le caractère courant. Souvenez-vous qu'après avoir saisi votre texte, il faut appuyer sur <ESC> pour revenir en mode commande.

Bénéfices du mode insertion

Allons-y avec les commandes a et i . Appuyez sur a ou i, tapez du texte, puis pressez Échap. pour revenir en mode commande. Après avoir appuyé sur a ou i, pressez <ENTER> et regardez ce qui se passe. Essayez d'utiliser les touches fléchées et la touche <DEL> pour voir comment le mode insertion fonctionne. En utilisant ces touches, vous pouvez largement éditer du texte sans avoir à entrer et sortir constamment du mode édition.

Options d'insertion

Voici quelques autres façons pratiques de passer en mode insertion. Appuyer sur A (en majuscule) pour ajouter du texte à la fin de la ligne courante, quelle que soit votre position sur la ligne. De même, appuyez sur I pour insérer du texte au début de la ligne actuelle. Appuyer sur o crée une ligne vide sous la ligne du curseur, dans laquelle vous pouvez insérer du texte, et O (en majuscule) insère une ligne au dessus de la ligne du curseur. Pour remplacer complètement la ligne courante par une nouvelle ligne, tapez cc. Pour tout remplacer à partir de la position courante du curseur jusqu'à la fin de la ligne, faites c$. Pour tout remplacer du début de la ligne à la position courante, tapez c0.

En plus de leur action spécifique, chacune de ces commande vous mettra en mode insertion. Après avoir tapé votre texte, appuyez sur <ESC> pour repasser en mode commande.

Changer du texte

Nous avons déjà utilisé plusieurs fois la commande c (changer), en tapant cc, c0 et c$. cc est une forme spéciale de la commande de changement, similaire à dd. Les commandes c0 et c$ sont des exemples d'utilisation de la commande de changement combinée avec une commande de déplacement. Dans cette forme, c fonctionne de la même manière que la commande d, sauf qu'elle vous laisse en mode insertion pour que vous puissiez insérer du texte à la place du texte effacé. Essayez de combiner des commandes de déplacement avec la commande c et testez-les sur votre fichier (suggestions : cW, ce, c( .)

8.  Commandes composées

vi devient vraiment très puissant quand vous commencez à utiliser des commandes composées du genre d{ et cw. En plus de ces commandes, vous pouvez combiner un nombre avec n'importe quelle commande de déplacement, comme 3w qui commande à vi de sauter 3 mots vers la droite. Voici quelques autres exemples de commandes composées : 12b, 4j.

En plus des combinaisons du genre (nombre)(commande de déplacement), vi permet de combiner d ou c avec un nombre ou une commande de déplacement. Donc, d3w effacera les 3 mots suivants, d2j supprimera la ligne courante et les deux lignes suivantes, etc. Testez quelques commandes composées à base de c et d pour bien sentir à quel point vi est précis et puissant. Une fois ces commandes parfaitement maîtrisées, vous serez capables d'éditer des fichiers à une vitesse impressionnante.

Mise à jour de la feuille de triche

Il est temps de remettre à jour la feuille de triche. Voici à quoi elle devrait ressembler maintenant :


Figure 8.1 : Feuille de triche avec les commandes composées

Fig. 1: Feuille de triche

Fonctionnalités pratiques

Jusqu'à présent, nous avons vu comment se déplacer, sauvegarder et quitter, réaliser des opérations de suppression et d'insertion simples. Grâce à tout ce que nous avons noté sur notre feuille de triche, vous devriez être capable d'utiliser vi pour presque n'importe quelle tâche.

Cependant, vi dispose de bien d'autres commandes puissantes. Dans cette section, je vais vous apprendre coment couper, copier et coller, rechercher et remplacer, et utiliser les fonctions d'indentation automatique. Ces commandes rendront vi plus amusant et efficace.

Mode visuel

Le meilleur moyen de couper et coller est d'utiliser le mode visuel, un mode spécial ajouté aux versions modernes de vi, comme vim ou elvis. Vous pouvez voir le mode visuel comme un mode où le texte peut être mis en surbrillance. Une fois le texte mis en surbrillance, il peut être coupé ou copié, puis collé. Si vous utilisez gvim, vous pouvez mettre du texte en surbrillance simplement en maintenant le bouton gauche de la souris enfoncé puis en déplacant le curseur sur une région donnée du texte :


Figure 8.2 : VIM avec du texte mis en évidence

Fig. 2: Texte mis en évidence

De plus, vous pouvez également passer en mode visuel en pressant la touche v (ça peut être la seule solution si vous utilisez vi en mode console.) Ensuite, en déplaçant le curseur à l'aide des commandes de déplacement (par exemple avec les touches fléchées), vous pourrez mettre une zone de texte en surbrillance. Une fois sélectionné, le texte peut être coupé ou copié.

Si vous voulez copier le texte, appuyez sur y (pour « yank » en anglais). Si vous préférez couper le texte, faites d. Vous allez revenir en mode commande. Déplacez-vous maintenant là où vous voulez insérer le texte copié ou coupé, et pressez p pour l'insérer après le curseur ou P pour l'insérer avant. Voilà, le couper/copier et coller est fini ! Testez plusieurs autres opérations de couper/copier et coller avant de passer à la section suivante.

Remplacer du texte

Pour remplacer des motifs de texte, nous utiliserons le mode ex. Si vous voulez remplacer la première occurrence d'un motif dans la ligne courante, tapez :s/<regexp>/<remplacement>/ puis <ENTER>, où <regexp> est le motif à remplacer et <remplacement> la chaîne de caractères de remplacement. Pour remplacer toutes les occurrences d'un motif dans la ligne courante, tapez :s/<regexp>/<remplacement>/g puis entrée. Pour remplacer toutes les occurrences du motif dans votre fichier (normalement, c'est ce que vous voulez), tapez :%s/<regexp>/<remplacement>/g. Si vous voulez faire un changement sur l'ensemble du fichier, mais que vi vous demande une confirmation avant chaque changement, tapez :%s/<regexp>/<remplacement>/gc (« c » pour « confirmer ») puis appuyez sur <ENTER>.

Indentation

vi prend en charge l'indentation automatique, utile quand vous éditez du code source. La plupart des versions modernes de vi (comme vim) activeront automatiquement ce mode quand vous éditerez un fichier source (un fichier .c par exemple). Quand l'indentation automatique est activée, vous pouvez utiliser <CTRL>d (control-d) pour indenter d'un cran de moins vers la gauche, et <CTRL>t (control-t) pour indenter d'un cran de plus vers la droite. Si l'indentation automatique n'a pas été activée automatiquement, vous pouvez l'activer manuellement en tapant la commande du mode ex :set autoindent. Vous pouvez également demander à vi de configurer la taille d'une tabulation selon votre préférence en utilisant la commande :set tabstop ; La configuration :set tabstop=4 est assez populaire.

Notre feuille de triche finale

Bon, nous arrivons à la fin du tutoriel sur vi !
Après avoir ajouté toutes les commandes d'éditions avancées à notre feuille de triche, elle devrait ressembler à ceci :


Figure 8.3 : Feuille de triche terminée

Fig. 3: Feuille de triche terminée

Conservez votre feuille de triche sous la main et commencez à éditer des fichiers et à taper vos courriels sous vi. Référez-vous à votre feuille de triche au besoin. Vous verrez que, d'ici une semaine, vous aurez mémorisé presque toutes les commandes et votre productivité sous vi se sera nettement améliorée.

Si vous voulez définir vi comme votre éditeur par défaut, vous devez modifier /etc/rc.conf comme suit :

Exemple de code 8.1 : Définir vi comme éditeur par défaut

(Attribuez le nom de votre éditeur préféré à EDITOR.)
#EDITOR="/bin/nano"
EDITOR="/usr/bin/vim"
#EDITOR="/usr/bin/emacs"

Ressources

Voici quelques ressources que vous pourriez trouver utiles pour en apprendre davantage sur vi :

À propos de ce document

La version originale de cet article a été publiée sur le site developerWorks d'IBM et est la propriété de Westtech Information Services. Ce document est une mise à jour de l'article original et contient diverses améliorations faites par l'équipe de documentation de Gentoo.



Imprimer

Dernière mise à jour le 21 juillet 2005

La version originale de cette traduction n'est plus maintenue

Résumé : Ce guide va vous apprendre comment utiliser vi en utilisant une méthode de feuille de triche pour accélerer le processus d'apprentissage. Ce sera le premier guide pour vi dédié aux débutants.

Daniel Robbins
Auteur

Eric Stockbridge
Auteur

Benny Chuang
Correcteur

Sylvain Meilard
Traducteur

Xavier Neys
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.