[VIM] Script remplissant les headers

Bonjour a tous,

Je commence a utiliser pas mal VIM apres avoir passe pas mal de temps sur Emacs. Et comme, je viens d’apprendre l’existence de scripts, je me demandais s’il etait possible de creer un mode me permettant de :

  • via une commande en mode normal (:fill par exemple), qu’il me remplisse automatiquement le header d’un fichier source. Vu que je suis etudiant et que j’ai besoin d’une en-tete de ce type pour mes projets informatiques, ce serait pas mal d’automatiser cette procedure. Le must serait de pouvoir fournir un argument (:fill project_name).
  • a chaque demarrage de VIM, que ce mode upgrade une ligne (la ligne de derniere date de modif du fichier en l’occurence)

Voila, si vous pouvez m’orienter sur les outils a utiliser, des bons tutos, ce serait sympa !

Je ne connais pas pas de moyens de créer une commande du mode normal, par contre tu peut l’assigner à un raccourcis clavier (C-X C-H ? :wink: ).

Le langage de script de vim n’est pas aussi développer que celui d’emacs, l’idée avec vi c’est d’utiliser à coté des scripts (sh, perl, python, ruby, C, Ada,…).

Tu dois pouvoir créer un script qui affiche ce que tu veut comme entête, puis de l’associer à une touche de cette manière :

Grosso modo on associe à la touche F9 la suite de commande qui va à la première ligne et premier caractère et écris dans le fichier courant le résultat du script script.sh.

Quant à la mise à jour je ne sais pas si c’est possible.

Concernant les headers, un bon script shell comme MisterFreez l’indique c’est le plus rapide et simple à mettre en oeuvre.

Pour la dernière date de modif y a ceci, mais faut un peu bidouiller pour obtenir ce que l’on veut :
vim.org/scripts/script.php?script_id=259 ; c’est aussi une bonne intro à l’écriture de plugin vim :wink:

Si l’anglais te fait pas peur y a un wiki avec les trucs et astuces : vim.wikia.com/wiki/Main_Page

Ok, merci pour ta reponse, un simple raccourci est tout aussi pratique. Seulement, il ne me permet pas d’entrer certains parametres directement (nom du fichier, du projet), mais je dois pouvoir les recuperer via le shell (ou au pire les corriger a la main).

Pour l’update, ca pourrait se faire avec un script qui ouvre le fichier, et verifie si le debut est conforme a la norme. Puis aller a la ligne “Last update” et utiliser sed.

Je vais regarder ton exemple de script, c’etait a peu pres ce que je cherchais je pense.

Merci :wink:

@knucky : merci pour le lien je vais regarder ca aussi !

bonjour ,

Si j’ai bien compris tu veux que ton vim te réécrive les header lui meme des que tu edite un fichier c’est cela?

Si oui alors c’est du coté du .vimrc qu’il faut regarder.
En gros tu definis des fonction qui vont allez chercher des squelette ailleurs pour remplir tes fichiers.

je dois avoir ça quelque part (on s’en servait à l’école) je peut te retrouver ça

en gros pour un fichier cpp ça me renvoi un truc comme ça

[code]/*

  • main.cpp for (self)
  • Made by jackall
  • Login xxx@insia.org
  • Started on lun 21 mai 2007 15:53:43
  • Last update lun 21 mai 2007 17:05:13
    */
    [/code]

Je vais regarder si je les ai gardés, mais au pire j’ai le vimrc qui vas bien donc tu n’auras plus que les headers à retaper.

Voila

Yep, c’était bien ça !

Entre temps, j’ai pu récuperer la conf Vim d’un étudiant plus ancien qui faisait exactement ce que je veux. Je la posterais peut-être, mais je préfère avoir son autorisation. En bref, il s’agit d’un script entièrement dans le “language” Vim qui remplit automatiquement les headers des .c, des .h et même des Makefile. Ensuite, il remplit tout en fonction du nom du projet (demandé à la création du fichier) et du nom de fichier. Je me pencherais dessus quand j’aurais un peu de temps libre, mais pour l’instant je n’y comprend pas grand chose :mrgreen: .