post

Vim fr:Modes

Contents

Introduction

Nous avons eu notre premier contact avec les différents modes dans le chapitre précédent. Maintenant, allons plus loin dans ce concept concernant les différents types de modes disponibles et ce que nous pouvons faire dans chaque mode.

Types des modes

Il y a trois modes de base dans Vim – normal, insertion et visuel.

  • Le mode normal est l’endroit où vous lancez des commandes. C’est le mode par défaut au démarrage de Vim.
  • Le mode insertion est l’endroit où vous insérez, par exemple quand vous écrivez du texte.
  • Le mode visuel est l’endroit où vous sélectionnez visuellement un texte, afin de lancer une commande concernant uniquement ce texte.

Le mode normal

Par défaut, vous êtes dans le mode normal. Voyons ce que l’on peut faire dans ce mode.

Tapez :echo "hello world" et appuyez sur la touche Entrée. Vous devriez voir les célèbres mots hello world affichés. Vous avez lancé la commande Vim appelée :echo et vous avez fourni un texte pour cette commande, qui a été affiché rapidement.

Tapez /hello et appuyez sur la touche Entrée. Vim va rechercher cette phrase et se placer sur la première occurrence.

C’était juste deux exemples simples des types de commandes disponibles dans le mode normal. Nous verrons d’autres commandes dans les chapitres suivants.

Comment utiliser l’aide

Savoir utiliser la commande :help est presque aussi important que connaître le mode normal. Cela permet d’en savoir plus à propos des commandes disponibles dans Vim.

Vous n’avez pas besoin de connaître toutes les commandes disponibles dans Vim, il est plus simple de savoir où les trouver quand vous en avez besoin. Par exemple, écrire :help usr_toc vous emmène à la table des matières du manuel de référence. Vous pouvez taper :help index pour rechercher le sujet précis qui vous intéresse, par exemple, taper /insert mode pour voir une information détaillée sur le mode insertion.

Si vous ne pouvez pas vous souvenir de ces deux sujets d’aide, appuyez juste sur la touche F1 ou simplement exécutez :help.

Mode insertion

Quand Vim démarre en mode normal, nous avons vu comment utiliser i pour passer en mode get insertion. Il y a d’autres façons de passer du mode normal au mode insertion:

  • Tapez :e dapping.txt
  • Appuyez i
  • Ecrivez le paragraphe suivant (avec les fautes de frappe et les erreurs, nous les corrigerons plus tard):

means being determined about being determined and being passionate about being passionate

  • Appuyez sur la touche <Esc> pour revenir au mode normal.
  • Tapez sur :w

Oups, nous avons manqué un mot au début de la ligne et notre curseur est à la fin de la ligne, que faisons-nous maintenant?

Quelle est la manière la plus efficace pour aller au début de la ligne et y insérer le mot manquant? Devons-nous utiliser la souris pour placer le curseur au début de la ligne? Devons-nous utiliser les touches flèche en haut/en bas…pour revenir au début de la ligne? Devons-nous appuyer sur la touche home, puis appuyer sur i pour revenir en mode insertion à nouveau?

La méthode la plus efficace est d’appuyer sur I (i majuscule):

  • Appuyez sur I
  • Tapez Dappin
  • Appuyez sur la touche <Esc> pour revenir en mode normal.

Notez que nous avons utilisé une touche différente pour revenir au mode insertion, sa spécialité est de déplacer le curseur au début de la ligne et de passer ensuite en mode insertion.

Notez également qu’il est très important de revenir en mode normal dès que vous avez fini de taper le texte. Prendre cette habitude sera bénéfique parce que la plus grosse partie de votre travail (après la première phase d’écriture) sera en mode normal – c’est là que tout -corrections importantes/édition/finalisation se passe.

Maintenant, voyons une autre utilisation de la commande i. Notez qu’appuyer sur i va positionner votre curseur avant la position courante du curseur et ensuite passer en mode insertion. Pour placer le curseur après la position courante, appuyez sur a.

  • Tapez a
  • Tapez g (pour compléter le mot “Dapping”)
  • Tapez <Esc> pour revenir en mode normal

Comme pour le rapport entre les touches i et I, il y a une relation entre les touches a et A – si vous voulez placer du texte à la fin de la ligne, appuyez sur la touche A.

  • Appuyez sur A
  • Appuyez sur . (insérez un point pour finir la phrase correctement)
  • Appuyez sur <Esc> pour revenir en mode normal

Récapitulons les quatre clés apprises jusqu’ici:

Commande Action
i insère du texte juste avant le curseur
I insère du texte au début de la ligne
a ajoute du texte juste après le curseur
A ajoute du texte à la fin de la ligne

Notez comment les commandes en lettres majuscules sont des ‘plus riches’ versions des commandes en lettres minuscules.

Maintenant que nous sommes efficaces pour nous déplacer rapidement sur une ligne, voyons comment se déplacer sur des nouvelles lignes. Si vous voulez ‘o’uvrir une nouvelle ligne pour commencer à écrire, appuyez sur la touche o.

  • Appuyez sur o
  • Tapez I'm a rapper.
  • Appuyez <Esc> pour revenir au mode normal.

Humm, cela serait plus attirant si cette nouvelle phrase était un paragraphe à elle seule.

  • Appuyez sur O (‘O’ majuscule)
  • Appuyez <Esc> pour revenir au mode normal.

Pour récapituler les deux nouvelles clés apprises:

Commande Action
o ouvre une nouvelle ligne au-dessous
O ouvre une nouvelle ligne au dessus

Notez comme les ‘o’ majuscule et minuscule sont opposés concernant la direction dans laquelle ils ouvrent une ligne.

Est-ce qu’il y avait une erreur dans le texte que nous venons d’écrire? Aah, cela devrait être ‘dapper’, pas ‘rapper’! Il y a juste un caractère à changer, quelle est la manière la plus efficace de le faire?

Il est possible d’appuyer sur i pour passer en mode insertion, appuyer sur la touche Del pour effacer la lettre r, taper d et ensuite appuyer sur Esc pour revenir en mode normal. Mais cela demande quatre étapes pour une seule correction! Est-ce qu’il y a mieux? Vous pouvez utiliser la clé s pour ‘s’ubstituter.

  • Déplacez le curseur sur le caractère r (ou pressez simplement b pour se ‘b’ouger jusqu’au début du mot)
  • Appuyez sur s
  • Tapez d
  • Appuyez sur <Esc> pour revenir au mode normal.

Bon d’accord, nous n’avons pas gagné beaucoup jusqu’ici, mais imaginez répéter ce processus tout au long de la journée. Faire une opération simple comme celle-là aussi vite que possible permet de concentrer nos énergies afin d’être plus créatif. Comme le dit Linus Torvalds, “ce n’est pas uniquement faire des choses plus vite, mais parce que c’est si rapide, la manière dont vous travaillez change totalement.”

Encore une fois, il y a une version plus puissante de la clé s, S qui remplace la ligne complète au lieu du caractère courant.

  • Appuyez sur S
  • Tapez Be a sinner.
  • Appuyez sur <Esc> pour revenir en mode normal.
Commande Action
s remplace le caractère courant
S remplace la ligne courante

Revenons à notre dernière action… Pouvons-nous la rendre plus efficace vu que nous voulons ‘r’emplacer juste un seul caractère? Oui, nous pouvons utiliser la clé r.

  • Déplacez le curseur sur le premier caractère du mot sinner.
  • Appuyez sur r
  • Tapez d

Notez que nous sommes déjà revenus au mode normal sans avoir eu besoin de taper sur <Esc>.

Il y a une version plus puissante de r appelée R qui remplacera des caractères continus.

  • Déplacez le curseur sur le ‘i’ de dinner.
  • Appuyez sur R
  • Tapez app (le mot devient ‘dapper’)
  • Appuyez sur <Esc> pour revenir en mode normal.
Commande Action
r remplace le caractère courant
R remplace des caractères continus

Le texte devrait maintenant ressembler à cela:

Dapping means being determined about being determined and being passionate about being passionate. Be a dapper.

Ouf. Nous avons vu beaucoup de choses dans ce chapitre, mais c’est la première étape qui est la plus difficile. Une fois que vous avez compris cela, vous avez compris la manière dont Vim fonctionne, et les autres fonctionnalités dans Vim, cela est juste la cerise sur le gâteau.

Je répète, comprendre comment les différents modes fonctionnent et comment passer d’un mode à un autre est la clé pour devenir un Vimmer, donc si vous n’avez pas assimilé les exemples précédents, relisez-les. Prenez tout votre temps.

Si vous voulez plus de détails sur ces commandes, voyez :help inserting et :help replacing.

Mode Visuel

Supposons que vous voulez sélectionner un groupe de mots et les remplacer avec un nouveau texte que vous voulez écrire. Que faites-vous?

Une solution serait d’utiliser la souris pour cliquer au début du texte qui vous intéresse, garder le clic gauche appuyé, bouger la souris jusqu’à la fin du texte et relâcher le clic gauche.

Nous pouvons utiliser les touches <Del> ou <Backspace> pour effacer tous les caractères, mais cela semble encore pire du point de vue de l’efficacité.

Le moyen le plus efficace serait de positionner le curseur au début du texte, appuyer sur v pour démarrer le mode visuel, utiliser les touches flèches en haut/en bas/à gauche/à droite, ou n’importe quelle commande de mouvement jusqu’à la fin du texte (par exemple, taper 5e pour se déplacer à la fin du 5 ème mot compté à partir de la position du curseur) puis appuyer sur c pour ‘c’hanger le texte. Notez l’amélioration en efficacité.

Pour cette opération (la commande c ), vous serez en mode insertion à la fin, donc appuyez sur <Esc> pour revenir en mode normal.

La commande v fonctionne pour un caractère, si vous voulez faire la même chose sur des lignes, utilisez V.

Récapitulatif

Voici un tableau des relations entre les différents modes:


               +---------+  i,I,a,A,o,O,r,R,s,S  +----------+
               | mode    +---------->------------+ mode      |
               | Normal  |                       | Insertion |
               |         +----------<------------+           |
               +-+---+---+        <Esc>          +-----------+
                 |   |
                 |   |
                 |   |
                 |   |
                 |   |
           v,V   V   ^  <Esc>
                 |   |
                 |   |
                 |   |
                 |   |
             +---+---+----+
             | mode       |
             | Visuel     |
             +------------+

(Ce tableau a été créé en utilisant Vim et le plugin DrawIt de Dr.Chip)

Voyez :help vim-modes-intro et :help mode-switching pour les détails sur les différents modes et comment passer de l’un à l’autre.

Si vous n’êtes pas convaincu par le concept des modes, la puissance et la simplicité de Vim, lisez les articles sur “Why Vi” et pourquoi le modèle de saisie de vi est la meilleure manière pour éditer.