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 :

  1. « ^[ » correspond à « ECHAP » que l’on écrit en appuyant sur « CTRL+V » puis « ECHAP »;
  2. 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 ;)

Vus : 845
Publié par Sylvain : 20