Julien Philippon

Jouer au golf pour progresser avec Vim

Si vous souhaitez découvrir Vim, je vous invite à lire l’article d’hier qui explique Pourquoi utiliser Vim et comment bien démarrer avec cet éditeur.

Maintenant que vous avez les bases, vous avez compris à quel point cet éditeur est conçu pour vous rendre efficace dans la gestion de contenu et de code. Mais pour gagner en rapidité, il est nécessaire de connaitre un maximum de commandes native de Vim. C’est là que VimGolf rentre en jeu 😉.

Pour jouer à VimGolf, vous devez vous rendre sur leur site et vous connecter à l’aide d’un compte Twitter. Vous pouvez ensuite installer le jeu sur votre machine, rien de bien compliqué.

Ensuite, c’est comme au golf : vous choisissez le “trou” que vous voulez faire parmi leur longue liste. Par exemple, je choisis celui-ci http://www.vimgolf.com/challenges/5f1e0217becb80000692b9c4.

Sur la page vous voyez un fichier de départ :

RD 5 Gore 9775
RD 6 Gore 9776
RD 7 Gore 9777
RD 1 Great Barrier Island 0991
RD 1 Greta Valley 7387
RD 1 Greytown 5794
RD 1 Hamilton 3281
RD 2 Hamilton 3282

Et un fichier de fin :

9775
9776
9777
0991
7387
5794
3281
3282

Pour commencer la partie, vous devez lancer la commande proposée en haut de page :

$ vimgolf put 5f1e0217becb80000692b9c4

A ce moment, Vim s’ouvre avec le fichier de départ : le but est d’arriver au fichier de fin et l’enregistrer en faisant moins de coup (comprenez touches) possibles. Visiblement les meilleurs scores sont de 10 coups !

J’ai réussi à le faire en 21 coups (le <CR> compte pour 1) :

:%s/^.* \(\d*\)/\1<CR>ZZ

Je l’ai fait avec une expression régulière, mais il y a plein de façons différentes de résoudre cet exercice. Une fois enregistré, il vous propose d’envoyer votre résultat, quitter ou recommencer :

Here are your keystrokes:
:%s/^.* \(\d*\)/\1<CR>ZZ

Success! Your output matches. Your score: 21
[w] Upload result and retry the challenge
[x] Upload result and quit
[r] Do not upload result and retry the challenge
[q] Do not upload result and quit
Choice>

Et à chaque fois que vous publiez votre résultat, vous découvrez la solution de ceux qui ont fait un trou de moins que vous, ce qui vous permet d’avancer et de découvrir de nouvelles méthodes au fur et à mesure. Vous devrez probablement chercher et vous documenter pour comprendre les commandes que les autres ont utilisés.

Par exemple, celui-ci m’a permis de mieux saisir l’utilisation des expressions régulières sur Vim et de me rappeler que je peux aussi quitter et enregistrer en utilisant ZZ.

Avec VimGolf, pas de plugin ni de thème : vous apprenez à utiliser les bases de vim et mieux comprendre son fonctionnement.

Alors, ça vous dit un petit golf ?

Plus d’informations : http://www.vimgolf.com