vim fait partie de ces outils que j'utilise tous les jours depuis des temps immémoriaux, en n'en connaissant pourtant qu'une part infinitésimale des fonctionnalités. Si j'avais remarqué depuis longtemps qu'il était capable d'explorer une arborescence de fichiers (tapez view . par exemple), j'ignorais en revanche qu'il savait aussi, nativement, ouvrir et explorer des archives ou parcourir des systèmes de fichiers distants. Ce sont pourtant des "nouveautés" apparues en 2006 dans la version 7, sous la forme de plugins standards.

Accéder à une archive

Ces plugins utilisent autocommand, une fonctionnalité de vim permettant d'associer une macro à un événement, par exemple l'ouverture d'un fichier, l'enregistrement, etc. Quand vim détecte que vous demandez l'édition d'une archive, il associe automatiquement des commandes aux opérations de lecture/écriture, vous permettant de la parcourir, consulter un fichier et même le modifier directement, sans avoir à extraire l'archive puis la recréer ensuite.

Les formats reconnus, à condition que les programmes correspondants soient installés sur le système, sont compress (.Z), gzip (.gz), bzip (.bz), tar (.tar) et zip (.zip).

Explorer un système de fichier

pi_netrw permet d'explorer des systèmes de fichier directement depuis vim. Il reconnaît le système local, mais aussi les arborescences distantes via ftp, rcp, http, scp, sftp, dav, rsync... Il suffit d'utiliser une syntaxe du type vim sftp://user@host/path/de/mon/fichier.php ou vim sctp://user@host/

Il permet d'accéder de façon transparente aux fichiers où qu'il soient, en local ou sur le réseau: les lire, les écrire (sauf si on utilise le protocole http), afficher une arborescence et s'y promener. Toutes les commandes classiques sont disponibles pour gérer l'affichage (tri...) et les fichiers (les renommer, supprimer). Malheureusement, vim va redemander le mot de passe pour chaque opération, ce qui dans la pratique n'en fait pas une solution sérieuse pour explorer des systèmes distants (pour FTP, on peut enregistrer le mot de passe dans un fichier de configuration, mais qui utilise encore FTP de nos jours ?). Cela dit, cela reste une solution pratique pour éditer un fichier distant, sans avoir à le décharger, le modifier puis le recharger. On me murmure qu'il existe des programmes avec une interface graphique qui font aussi cela très bien, mais il n'est pas toujours possible d'utiliser un clicodrôme (par exemple pour éditer des fichiers de configuration sur un serveur de production auquel on n'accède que depuis une passerelle). Bref, une astuce qui peut se révéler bien pratique.

Pfff, vivement la retraite que j'aie enfin le temps de lire la doc de vim !