juil 22
Habillez vos commentaires facilement grâce à Vim
J’ai pour habitude d’afficher de jolis commentaires bien démarqués du code source afin de pouvoir les lire très rapidement sans devoir les chercher. Hors, selon les langages de programmation, ceux-ci ne s’écrivent pas de la même façon. Je vous propose donc une petite macro (à placer dans votre « ~/.vimrc ») permettant d’habiller facilement vos commentaires ; celle-ci étant accessible grâce à la touche F8 en mode normal.
Voici la macro en question :
map <F8> :call Comment()<CR>
function! Comment()
let ext = expand("%:e")
if ext == 'html' || ext == 'htm'
execute "normal yyPPI<!--^[lDjI ^[j^DI-->^[j"
return
endif
if ext == 'php' || ext == 'js'
execute "normal I// ^[A //^[yyPv$r/yyjpj"
return
endif
if ext == 'txt'
execute "normal I| ^[A |^[yyPr+lv$r-$r+yyjpj"
return
endif
if ext == 'tex'
execute "normal I% ^[A %^[yyPr%lv$r/$r%yyjpj"
return
endif
if ext == 'c' || ext == 'cpp' || ext == 'cc' || ext == 'h' || ext == 'hpp'
execute "normal yyPPI/*^[lDjI ^[j^DI*/^[j"
return
endif
" Style de commentaire par défaut
if ext == 'sh' || ext == 'py' || ext == 'pl' || 1
execute "normal I# ^[A #^[yyPr#lv$r/$r#yyjpj"
return
endif
endfunction
J’ai deux petites remarques à faire :
- « ^[ » correspond à « ECHAP » que l’on écrit en appuyant sur « CTRL+V » puis « ECHAP »;
- le style de commentaire par défaut doit être sur la dernière ligne à cause du test « || 1 » qui dans tous les cas validera la condition.
Voici le résultat obtenu selon le format de fichier :
-
Extension du fichier html ou htm :
<!-- Hello GNU Squad ! -->
-
Extension du fichier php ou js :
/////////////////////// // Hello GNU Squad ! // ///////////////////////
-
Extension du fichier txt :
+-------------------+ | Hello GNU Squad ! | +-------------------+
-
Extension du fichier tex :
%///////////////////% % Hello GNU Squad ! % %///////////////////%
-
Extension du fichier c, cpp, h ou hpp :
/* Hello GNU Squad ! */
-
Extension du fichier sh, py, pl et tout le reste :
#///////////////////# # Hello GNU Squad ! # #///////////////////#
À vous d’agrémenter ou de modifier selon vos besoins, si vous avez besoin d’aide, n’hésitez-pas à passer par les commentaires ![]()

Le 18 novembre 2009 à 14:32
Bonjour, j’ai un petit soucis avec cette macro, elle me colle le code associé devant mon commentaire :
% ^[A %^[yyPr%lv$r/$r%yyjpjtest de commentaire tex
ou encore
| ^[A |^[yyPr+lv$r-$r+yyjpjtest de commentaire txt
Le 18 novembre 2009 à 15:35
J’imagine que t’as fait juste un copier/coller et que t’as pas lu mes remarques, me trompé-je ?
Le 18 novembre 2009 à 15:53
:sifflote:
Fichier modifié, c’est génial !
Encore merci !
Le 18 décembre 2009 à 08:43
J’ai un soucis, le Control-V pour refaire les caractères ^[ me colle simplement ce qui était en attente d’être collé. Comme un Control-C puis Control-V. Comme puis-je faire ce fameux caractère ECHAP ?
Le 18 décembre 2009 à 09:46
Tu dois avoir CTRL-V mappé dans ton ~/.vimrc.
Essaie de taper :unmap ^V