juil 08

Depuis mes débuts avec l’éditeur de texte Vim, je ne cesse de découvrir des nouvelles fonctionnalités : Pour faire simple, j’apprécie de plus en plus celui-ci tant ses possibilités sont nombreuses. Cet article sera donc pour moi l’occasion de vous présenter une fonction bien utile : La création d’un modèle de document également appelé template.

Un grand merci à Asher qui m’a permis de découvrir cette astuce !

La création d’un modèle de document consiste à pré-remplir un fichier selon son type, par exemple dans le cadre d’un fichier .sh, on pourrait faire en sorte d’inscrire les informations suivante :

#!/bin/sh
 
## Variables
 
## Includes
 
## Fonctions
 
## Start

Ainsi lors de la création d’un nouveau fichier .sh, Vim se chargera d’afficher ce modèle. Cet exemple n’est peut-être pas représentatif du confort qu’apporte cette astuce mais pour information et à titre personnel, j’utilise cette fonctionnalité pour l’écriture des articles de ce blog… Je me suis fait un petit modèle de document contenant des balises HTML répondant à mes besoins et au final j’en suis très satisfait !

Une astuce bien pratique qui vous fera gagner du temps ;) .

How to :

Créez en premier lieu le répertoire ~/.vim/templates :

$ mkdir -p ~/.vim/templates

La deuxième tâche consiste en la création de votre modèle, bien évidement vous pouvez y inclure ce que bon vous semble :

vim ~/.vim/templates/bash.sh

Pour finir, il ne vous reste plus qu’a inscrire cette ligne dans votre fichier .vimrc :

au bufNewFile *.sh 0r ~/.vim/templates/bash.sh

Créez un nouveau fichier en spécifiant l’extension pour profiter du template :

$ vim script.sh

Facile, non ?

Sondage :

Vim ou Emacs ?


Loading ... Loading ...

Liens :

Dans la même catégorie :

écrit par David Lopes Ferreira

7 commentaires à “Création d’un modèle de document avec Vim”

  1. Argos Dit:

    C’est la manière native de faire un modèle avec vim. Si tu veux placer le curseur directement, par exemple, dans la partie dédiée aux fonctions, il y a ce plugin : http://www.vim.org/scripts/script.php?script_id=1172 .Le vimrc en devient un peu moins « cryptique ».

  2. fifou Dit:

    @Argos : pour déplacer le curseur à l’ouverture de ton buffer avec template, tu peux aussi ajouter une autocmd qui ferait gg}}} ou quelque chose comme ça. Cela me paraît plus simple et donc pas de plugin inutile.

    @David : J’utilise ce genre d’astuce aussi mais j’ai ajouter un truc sympa. Je mets des tags reconnaissables dans mon template que mon vimrc change à la volée (exemple, la date, le nom du fichier, etc.). Je te copie/colle l’extrait en question, ça peut donner des idées :

     » Gestion des templates
    if has(« autocmd »)
    augroup templates
    autocmd!
    autocmd BufNewFile *.html,*.htm call Template(‘html’)
    autocmd BufNewFile *.py call Template(‘py’)
    autocmd BufNewFile *.sh,*.bat call Template(‘sh’)
    autocmd BufNewFile *.c,*.cpp,*.sc,*.h call Template(‘c’)
    autocmd BufNewFile *.spr call Template(‘spr’)
    augroup END

    function! Template(type)
    execute « 0r « .g:vimdir. »/templates/skeleton. ».a:type
    execute « %s/!!FICHIER!!/ ».expand(« %:t »). »/e »
    execute « %s/!!DATE!!/ ».strftime(« %d-%m-%Y »). »/e »
    execute « normal! G »
    endfunction
    endif

  3. Benjamin Dit:

    Merci pour cette astuce. Ça fait 3 ans que j’utilise vim et je ne connaissais même pas (faut dire que je ne me suis jamais trop penché sur une utilisation avancée).

    Excellente astuce en tout cas !

  4. David Lopes Ferreira Dit:

    @fifou @Argos : Merci pour vos astuces ;) Je vois que j’ai encore bcp à apprendre et cela est bien plaisant !

  5. Pluggi-512 Dit:

    Pour accélérer la saisie de code, moi je recommande les plugins Snipmate et Supertabs, qui permettent d’intégrer l’auto-complétion dans vim, qui n’est pas là de base.

    Supertabs permet de compléter les fonctions, variables, globales, etc. ce qui est très pratique si on a des noms de fonctions légèrement alambiqués (comme dans .NET avec ses fonctions qui prennent une ligne entière (80 caractères))

  6. Gardouille Dit:

    Merci à fifou pour l’astuce!

    Mais ne pas faire comme moi …
    Bien penser à remplacer les », «, ‘ et ’ … -_-
    Par contre c’est :
    if has(« autocmd »)
    Sans les espaces après et avant chaque double guillemets.
    Et ça fonctionne niquel.

    Fifou, comment as-tu définis ta variable vimdir? Peut importe comment je la définis, il n’en veut pas.

  7. Voodoo Dit:

    Sinon pour les modèles, il y a ‘vimplate’

Laisser une Réponse