Commandes Vim de base pour vous aider à être opérationnel

Rencontrez Mikey :

La dernière fois que nous avons vu Mikey, il n'était qu'un aspirant homme d'affaires qui utilisait la programmation pour l'aider à suivre les chiffres de ventes quotidiens de son stand de limonade. Vous pouvez en savoir plus sur les aventures passées de Mikey ici .

Il s'avère que Mikey a tellement apprécié son premier projet qu'il utilise désormais tout son temps libre pour écrire le code qui gère pratiquement toutes les tâches de son entreprise. Aujourd'hui, à l'école, Mikey a entendu des élèves sympas de 7e année parler de quelque chose appelé Vim, mais il n'en sait rien. Mikey va sur Google et essaie de trouver plus d'informations.

Qu'est-ce que Vim ?

Mikey est surpris par ce qu'il trouve. Il s’avère que Vim n’est, pour l’essentiel, rien de plus qu’un éditeur de texte, bien qu’extrêmement puissant. Malheureusement pour Mikey, l'utilisation de Vim s'accompagne d'une certaine courbe d'apprentissage, mais Mikey a trouvé quelques commandes de base sur Google qu'il souhaite essayer. Codons avec Mikey et voyons en quoi consiste ce Vim.

Entrer dans Vim

Accéder à Vim est assez simple. Accédez simplement à un répertoire via votre terminal et saisissez vim insert_file_name_here sur la ligne de commande. Cela ouvrira votre fichier dans Vim.

Mode Insertion/Commande

Vim est en mode commande à son ouverture. Être en mode commande vous permettra de naviguer et de modifier votre texte avec les commandes Vim. Il n'agit pas toujours comme prévu, en supposant que vous essayiez de l'utiliser comme un éditeur de texte standard. Il y a quelques points dans cet article où vous trouverez du texte à copier/coller dans votre fichier. Lorsque vous collez votre texte copié, assurez-vous d'entrer en mode Insertion en cliquant sur la touche i. insert du texte dans notre fichier :

Three words.
Two WORDs…!

Vous pouvez copier et coller comme d’habitude en mode Insertion. Pour revenir en mode commande, appuyez simplement sur la touche esc.

Commandes h/j/k/l

Vim ne répond pas à la souris comme nous en avons l'habitude, que ce soit en mode Commande ou en dehors. De ce fait, la navigation a tendance à se faire via le clavier. Même si Vim répond aux flèches directionnelles du clavier, il est préférable de s'habituer aux commandes h/j/k/l :

h — moves the cursor one space left
j — moves the cursor one space down
k — moves the cursor one space up
l — moves the cursor one space right

Essayez d'utiliser l'une des commandes h/j/k/l dans le fichier que vous consultez actuellement. Pouvoir déplacer le curseur est un bon début, mais déplacer une case à la fois n'est pas très efficace. Examinons quelques façons de déplacer le curseur de plusieurs espaces à la fois.

« MOT » contre « mot »

Avant d'aller plus loin, il est important de souligner que plusieurs des commandes suivantes sont conçues pour naviguer entre « mots » et « MOTS ». Prenez un moment avec Mikey pour essayer de faire la différence entre les mots et les MOTS, tels que définis par VIM Adventures :

  • Un mot est constitué d'une séquence de lettres, de chiffres et de traits de soulignement, ou d'une séquence d'autres caractères non vides, séparés par des espaces blancs (espaces, tabulations, EOL). Une ligne vide est également considérée comme un mot.

Three words.

  • Un MOT est constitué d'une séquence de caractères non vides, séparés par des espaces (espaces, tabulations, EOL). Une ligne vide est également considérée comme un MOT

Two WORDS…!

‘w’ vs ‘W’

Les commandes w et W se déplaceront respectivement sur les mots et les MOTS.

La commande w déplacera le curseur vers le début du mot suivant. Regardons notre exemple de mot plus tôt :

- three w commands will navigate over each of the words below
Three words.

Regardons maintenant notre exemple WORD de plus tôt :

- two W commands will navigate over each of the WORDs below
Two WORDs…!

Testez les nouvelles commandes w/W avec Mikey.

‘e’ vs ‘E’

Les commandes e et E fonctionnent d'une manière similaire à celle de w/W, sauf que e/E amènera le curseur jusqu'à la fin du mot suivant, plutôt qu'au début. Mikey ajoute ce qui suit à son fichier texte pour essayer les commandes e/E. Faisons-le avec lui :

sugar-free gum

‘b’ vs ‘B’

Rappelez-vous comment les commandes w/W vous amèneront au début du mot/MOT suivant ? Les commandes b/B vous amèneront au début du mot/WORD précédent. Mikey va ajouter l'exemple suivant à son fichier texte et essayer d'utiliser chacune des commandes w/W, e/E et b/B. Le ferez-vous avec lui ?

Tuesday’s doctor appt.

‘0’ vs ‘$’

Sauter mot à mot sera certainement utile, mais que se passe-t-il si nous voulons déplacer notre curseur du début à la fin d'une ligne ? Alternativement, que se passe-t-il si nous voulons revenir au début de la ligne alors que notre curseur est à la fin d'une ligne ? Sauter mot par mot peut nécessiter plusieurs frappes. Heureusement, nous avons les commandes numéro 0 et $. Faites comme Mikey et copiez/collez ce qui suit dans votre fichier texte, puis essayez de naviguer dans le fichier en utilisant les commandes 0/$ ainsi que l'une des commandes précédentes :

Fourscore and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.

‘x’ vs ‘X’

La commande x nous permet de supprimer l'espace suivant la position du curseur. La commande X supprime l'espace précédant la position du curseur. Mikey va copier ce qui suit dans son fichier texte pour expérimenter les commandes x/X. Ce qui va se passer ensuite va vous choquer…

You’ll never get away with this!!!

‘dd’

Dans la mesure où naviguer mot par mot peut demander un peu d'effort, il en va de même pour les commandes x/X. La suppression d'un seul caractère est certainement une chose à laquelle nous voulons avoir accès, mais la commande seule n'est pas très efficace pour la suppression. L'exécution de la commande dd nous permet de supprimer une ligne entière avec seulement 2 frappes (le premier d appelle la commande delete, le second l'applique à la ligne actuelle). Mikey copie et colle ce qui suit dans son fichier texte, puis essaie d'expérimenter avec la commande dd (ne vous inquiétez pas lorsque votre texte disparaît. Nous nous en occuperons dans une seconde) :

All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.

La commande 'dd' supprimera la ligne entière quel que soit l'emplacement du curseur.

annuler/rétablir

Mikey était tellement excité qu'il a supprimé tout son texte. Pas grave. Annulons nos actions de suppression de ligne. Mikey entre simplement u (en mode Commande) pour chaque action qu'il souhaite annuler. La commande redo peut être utilisée avec CTRL + r. Annulons nos modifications afin de pouvoir récupérer notre texte.

Chaînage des commandes Vim

Mikey se sent plutôt bien dans ses compétences Vim. Il décide de les montrer à son ami Tommy pendant qu'ils jouent cet après-midi-là, mais Tommy n'est pas impressionné. Il dit à Mikey que même si le concept est sympa, rien de ce qu'il fait ne s'avère plus efficace que d'utiliser un éditeur de texte comme Atom ou Sublime. Mikey se rend compte que Tommy avait raison et estime que toute sa pratique de Vim n'a servi à rien. Pauvre Mikey.

Le soleil se couche maintenant et Tommy doit rentrer chez lui, mais Mikey pense toujours à Vim. Mikey est sur le point d'abandonner Vim pour de bon lorsqu'il a une idée folle. Il ouvre son fichier texte avec Vim, trouve un mot dans son fichier et saisit cette commande :

2W

Le curseur de Mikey avance maintenant jusqu'au début du mot 2 MOTS plus loin. Mikey essaie une autre commande :

5x

Maintenant Mikey a supprimé les 5 espaces qui suivent le curseur. Mikey essaie quelque chose de fou maintenant :

5dw

Mikey a désormais supprimé les 5 mots suivant son curseur. Il continue de s'amuser et prend note de certaines des méthodes Vim qu'il a enchaînées :

  • [count], w/W : e/E : b/B : h/j/k/l — exécute la commande [count] nombre de fois
  • d [count] w/W : e/E : b/B : h/j/k/l — supprime en fonction de l'action de la commande [count] nombre de fois
  • d 0/$- supprime tout ce qui se trouve entre le curseur et le début/fin d'une ligne

Il est certain qu'il y en a beaucoup plus à trouver, mais il est convaincu que ce qu'il a ici est suffisant pour le mettre sur la bonne voie pour faire de Vim une option viable pour éditer ses fichiers texte. Cela rend Mikey heureux.

Mikey se déconnecte de Vim et est assuré qu'il finira par apprendre suffisamment de commandes pour utiliser efficacement Vim. Afin de quitter Vim sans enregistrer aucune modification, entrez simplement la commande quit avec :q pour quitter en mode commande (vous devrez peut-être entrer :q! si le fichier a été modifié depuis son ouverture). Pour enregistrer vos modifications, saisissez la commande d'écriture avant de quitter, comme ceci : :wq.

Restez à l'écoute pour la deuxième partie, où Mikey va mettre en œuvre un certain nombre de méthodes différentes qui permettront à Tommy de remettre en question son évaluation de la puissance d'édition de texte de Vim. Allez Mikey !