juil 22

Habillez vos commentaires facilement grâce à Vim

Tag: Logiciels divers, VimSylvain @ 13:20

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 ;)

5 réponses pour “Habillez vos commentaires facilement grâce à Vim”

  1. Cthulhu a dit :

    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

  2. Sylvain a dit :

    J’imagine que t’as fait juste un copier/coller et que t’as pas lu mes remarques, me trompé-je ? ;)

  3. Cthulhu a dit :

    :sifflote:

    Fichier modifié, c’est génial !
    Encore merci !

  4. Guizmo.7 a dit :

    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 ?

  5. Sylvain a dit :

    Tu dois avoir CTRL-V mappé dans ton ~/.vimrc.
    Essaie de taper :unmap ^V

Laissez un commentaire