Je suis Vi-addicted, ou plus précisément Vim-addicted. Ca étonnera probablement ceux qui me connaissaient à l'ENSIMAG, car à l'époque j'avais pas fait l'effort de m'y mettre et je préfèrais nettement nedit pour éditer des fichiers sous Unix. Mais le temps a passé et, en particulier pour tout ce qui est langages scriptés, j'utilise intensivement Vim, et notamment plusieurs fichiers en même temps, fenêtre splittée ou non.

Il y a quelques semaines j'avais vu qu'une beta de Vim 7 étaient sortie, mais je ne l'avais pas essayée, étant pleinement satisfait de mon Vim 6.4 fourni avec Kubuntu (et sur les machines Linux au boulot). Je me suis décidé hier à l'essayer et... Ca en valait vraiment le coup !

L'installation ne pose aucun problème. La beta se trouve sur le FTP de Vim et s'installe avec un classique:

./configure [--enable-gui] [--prefix=/path/si/different/de/usr/local]
make
sudo make install

--enable-gui permet de compiler et installer gvim, la version de Vim avec GUI, en plus de Vim. Je n'utilise pas gvim personnellement, c'est trop coûteux en ressources dans le cadre d'une utilisation distante via SSH, mais il faut reconnaître que la gestion des onglets (je vais y venir) est réussie dans gvim. Je n'ai eu qu'un paquet à ajouter à ma Kubuntu pour que le configure passe: ncurses-dev

Donc venons-en aux fait, ce que j'adore dans Vim 7.0, c'est la gestion des onglets (tabs). Ca s'utilise très facilement, avec notamment les commandes:

:tabe nomfichier (ouvrir un nouveau tab)
:tabc            (fermer un tab)
:tab commande    (ouvrir un tab sur une commande)
gt               (GotoTab, aller au prochain tab)

Encore mieux, si la souris est activée (:set mouse=a), on peux même cliquer sur les tabs pour les sélectionner, et il y a aussi une petite croix en haut à droite pour les fermer. Tout ça marche fort bien même dans le cadre d'une utilisation distante via SSH. Mais bon la force de vim, c'est de permettre de tout faire très rapidement s'en quitter les mains du clavier. Un petit screenshot vaut mieux qu'un long discours. On peut voir que le tab activé est en gras.



Autre nouveauté importante, la complétion automatique. Ca s'utilise notamment avec CTRL+X CTRL+O en mode insertion (oui ça fait raccourci à la emacs, mais en mode insertion on est bien obligé d'utilise CTRL). Il faut configurer la complétion avec un :set omnifunc=htmlcomplete#CompleteTags par exemple, voici un petit screenshot de ce que ça donne:



Le tout dans un terminal Yakuake, intégré dans mon environnement. On peut voir que le nombre de fichiers ouverts dans un onglet est rappelé à côté du nom de de fichier.

(cliquer sur l'image pour l'agrandir)

Bref, du tout bon, cette version de Vim. Surtout quand on ajoute les nouveautés des dernières versions comme la possibilité de browser pour ouvrir un fichier, avec :E ou :Se.

Certains diront que Vim devient trop bloated, mais il est toujours instantané à s'ouvrir (chez moi) et la compatibilité est conservée avec les anciennes versions (si on ne veut pas de tabs, on n'utilise pas les commandes :tab*), et les évolutions vont vraiment dans le bon sens.