Vim

Comme beaucoup je me suis mis un jour à Vim. Les débuts ont été déroutants, mais maintenant je ne jure que par VIM.

Ce court article recense certaines de mes maniaqueries de petit programmeur du dimanche.

Tohtml

Pour les besoins de ce site j'ai testé un certain nombre de logiciels de coloration syntaxiques d'un code source en html. Le plus abouti est certainement Gnu source-highlight. Mais comme tout logiciel performant il nécessite un temps pour se l'approprier. Finalement j'ai gardé ma bidouille dans vim utilisant la commande TOhtml. Voir l'article dédié Tohtml

Compilation / Execution dans Vim

Très souvent nous avons besoin de compiler et ou exécuter le code source que nous sommes en train d'éditer. Si c'est du python il suffit de mapper une ou deux touches pour ce type de fichier.

Lorqu'il s'agit de C ou C++, cette stratégie pose des problèmes si le code source importe une librairie. La méthode normale est de faire un Makefile dédié au programme dans lequel on précise la librairie à importer. Cependant lorsqu'on fait un programme court de quelques dizaines de lignes la rédaction du Makefile devient un effort démesuré, alors qu'il s'agit juste de rajouter à la ligne de compilation un -lmachin.

Pour contourner l'écueuil j'ai utilisé des commodités de Vim : la commande execute et la fonction getline.

La commande execucte

La commande execute (en abrégé exec) execute une chaine de caractères comme si elle était une commande vim .Voir l'article de l'excellent site Learn Vimscript the Hard Way. Voir aussi l'aide en ligne de Vim (:h exec).

La fonction getline()

La fonction getline() récupère une ligne dans le fichier courant. Son argument est le numéro de la ligne que l'on veut récupérer. Voir l'aide en ligne de vim (:h getline).

Combinaison des deux

Exemple : compiler le tampon en édition avec gcc en indiquant le chargement d'une librairie, ici la librairie gd.

1. Dans le .vimrc on mappe une touche comme ceci :

map <F2> :exec getline(2)

Cette commande a pour effet de récuperer le contenu de la ligne 2 et de l'exécuter.

2. On place dans le fichier source à la ligne 2 le contenu suivant

/*
!gcc % -o %< -lgd
...
*/

La commande de compilation doit se situer à l'intérieur d'un commentaire.

Sur le même principe on peut mettre à jour le tampon, le compiler et l'exécuter :

/* gd-plot.c
:w | !gcc % -o %< -lgd && ./%< && ./gd-plot
...
*/

Généralement j'utilise deux lignes : la ligne 2 pour tester la compilation et la ligne 3 pour tester le programme. Dans mon .vimrc les touches F2 et F3 sont mappées pour exécuter respectivement la ligne 2 et la ligne 3.


Réalisé avec Qlam - LGPL