Les macros Vim

Automatiser est le maître mot lorsqu'on parle d'informatique : quoi de plus normal, puisque l'ordinateur est fait, en principe, pour simplifier la vie de l'utilisateur (cette affirmation est cependant très dépendante du système et des applications utilisés). Vim est également conçu dans cette optique et vous permettra de rendre vos éditions de texte bien plus agréables.

Le terme macro désigne une suite de commandes ou d'instructions permettant de copier les manoeuvres normalement effectuées par l'utilisateur. Bien sûr, le langage macro est normalement bien plus efficace que son homologue humain en terme de rapidité et surtout de maîtrise de soi :)

Nous avons déjà aperçu quelques fonctionnalités des macros Vim dans de précédents articles. Ainsi, la fonction le mappage du clavier est fortement liée à la notion de macro-commande. Le principe est d'associer une touche ou une combinaison de touches à une suite d'actions. Cette ligne incluse au fichier .vimrc de votre répertoire personnel vous permettra, par exemple, d'associer la touche F5 avec une suite d'instructions :

map <F5> 0i<!--<ESC>$a--><ESC>

Ici, la macro, puisque c'est de ça qu'il s'agit, amènera le curseur en début de ligne, passera en mode insertion, ajoutera <!--, passera en mode commande pour se placer en fin de ligne pour une insertion de --> après la position courante. Cette macro est très simple et ne prend en compte aucun argument.

Il est bien sûr possible d'écrire des macros plus conséquentes utilisant boucle et condition. Un certain nombre de macros sont livrées avec le fichier rt de Vim. Lors de l'installation, ces macros seront copiées dans /usr/local/share/vimNN/macros où NN est le numéro de version de Vim. Les macros sont habituellement des fichiers possédant une extension .vim. Ces fichiers peuvent être chargés à l'aide de la commande ex :

:so fichier_macro.vim

Si nous prenons l'exemple du fichier justify.vim qui permet de justifier automatiquement le texte présent dans le tampon en cours, il suffit de charger le fichier macro et d'utiliser la commande _j pour appliquer la modification. Attention tout de même, les macros utilisent le mappage du clavier pour être appelées, mais également dans leur fonctionnement. Ces mappages peuvent écraser les vôtres définis dans le fichier .vimrc.

En dehors des macros standards livrées à titre d'exemples avec Vim, un certain nombre d'utilisateurs acharnés proposent des macros très intéressantes via leur homepage sur Internet (voir Liens). On trouve ainsi aussi bien des macros très simples permettant, par exemple, d'inverser l'ordre des caractères sur une ligne (effet mirroir), mais également des macros complexes permettant la navigation dans le système de fichiers ou encore la connexion à un site ftp. Cet article n'est qu'une introduction à ce qu'est une macro Vim, nous verrons comment en écrire le mois prochain. En attendant, référez-vous aux liens qui suivent afin de bien comprendre l'utilité et l'utilisation des macros Vim complexes.

VIM 6.0

Voici quelques nouvelles concernant la prochaine version majeure de Vim qui devrait voir le jour dans très peu de temps. Parmi les fonctionnalités les plus remarquables, on notera la possibilité de diviser l'écran aussi bien horizontalement que verticalement, ceci dans le but de faciliter l'édition d'un plus grand nombre de fichiers. La majeure partie du code de Vim a également été revue et optimisée. Autre grande fonctionnalité très attendue : le support Unicode UTF-8. Ceci permettra l'édition de texte dans toutes les langues du monde. Vous trouverez une liste de ce qui reste à faire avant d'arriver au Vim 6.0 sur http://www.vim.org/docnew/vim60z.todo.txt

A noter également, la sortie toute récente du tout premier ouvrage entièrement consacré à Vim s'intitulant "Vi iMproved (VIM)" et écrit par Steve Oualline. L'ouvrage est référencé sous l'ISBN 0735710015 et édité chez New Riders Publishing, disponible au prix d'environ 350 Francs (53 Euro).

Liens

Page officielle de Vim
http://www.vim.org

Un très bon didacticiel Vim
http://home.tiscalinet.be/hack-knowledge/vim-tutor.html

Jano's Vim Macro Page
http://www.wi.leidenuniv.nl/~jvhemert/vim/

Homepage of Jos van Riswick - Vim macro page
http://www.dse.nl/~josvanr/2/vim.html

Some of my Vim macros
http://www.freespeech.org/aziz/vim/my_macros/

Linux Magazine France n°29 - Juin 2001