IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Header - emac ou vim -


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Par défaut Header - emac ou vim -
    Bonjour voila ma question semble assez simple mais plutôt complexe pour moi. Pour rendre plus jolie tout type de fichier éditer avec vim ou emacs , que sois un Makefile, un .c , un .h ou tout autre document j'aimerai bien mettre un Header( un entête).

    j'ai déjà codé et de manière assez simple le cadre pour chaque Header en voici un exemple (pour un fichier de type .c):

    /* ************************************************************************** */
    /* */
    /* */
    /* */
    /* */
    /* */
    /* */
    /* */
    /* */
    /* ************************************************************************** */

    Mon premier problème est le suivant :
    j'aimerai recupere :
    - le nom du fichier
    - le login de création
    - la date de creation
    - la date de dernier modification

    Mon seconde problème et le suivant
    j'aimerai integere :
    - tout les informations citer dans mon problème numéro
    - insere le logo de ma team
    le tout en gérant les espaces car mon Header mesure 80 par 10.

    Mon dernier problème
    - mon Header final doit c'exécuter avec la commande ^c^h sous vim et analysé le type exacte du fichier pour allouer le Header lui correspondant.

    Dans l'attente de vous lire très prochainement merci à tout pour votre aide. je suis confus de mes fautes d'orthographes, si il y'en n'a merci de me le dire je ferais la correction.

  2. #2
    Membre chevronné
    Homme Profil pro
    très occupé
    Inscrit en
    Juillet 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : très occupé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 137
    Par défaut
    Citation Envoyé par 42born2code Voir le message
    mon Header final doit c'exécuter avec la commande ^c^h sous vim et analysé le type exacte du fichier pour allouer le Header lui correspondant.
    Il semble donc que du doives apprendre Vim script pour arriver à tes fins : http://vimdoc.sourceforge.net/htmldoc/usr_41.html

  3. #3
    Membre éclairé
    Profil pro
    Retraité
    Inscrit en
    Novembre 2009
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2009
    Messages : 331
    Par défaut
    La question posée ne me semble pas si simple que cela.
    Je ne suis pas sûr que vouloir créer l'en-tête à tout prix à l'aide de commandes spécifiques à l'éditeur utilisé soit une bonne option.

    Pour Emacs (je n'utilise pas Vim), cela suppose de se familiariser avec le langage Elisp (Emacs lisp) et de trouver dans la documentation les variables et fonctions à utiliser, ce qui est un travail fort utile si cet apprentissage est le but recherché, mais bien lourd dans le cas contraire.

    Une autre méthode pourrait être de créer un petit programme en C qui fabrique le modèle souhaité. Ici, l'avantage c'est que, de toute façon, la méthode à utiliser pour récupérer les informations souhaitées fait partie des connaissances de base que doit avoir ou acquérir tout programmeur en C. Il est ensuite facile de déclencher l'exécution de ce programme à partir de l'éditeur utilisé.

    Une autre possibilité est d'employer un langage de script comme Python.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 345
    Par défaut
    Citation Envoyé par pvincent Voir le message
    La question posée ne me semble pas si simple que cela.
    Je ne suis pas sûr que vouloir créer l'en-tête à tout prix à l'aide de commandes spécifiques à l'éditeur utilisé soit une bonne option.
    Vu le nom de celui ou celle qui a posé la question, et puisque le raccourci demandé sous vim est ^C^H, ça m'a tout l'air d'être une consigne de rigueur venant d'une certaine école d'info

    Une autre méthode pourrait être de créer un petit programme en C qui fabrique le modèle souhaité. Ici, l'avantage c'est que, de toute façon, la méthode à utiliser pour récupérer les informations souhaitées fait partie des connaissances de base que doit avoir ou acquérir tout programmeur en C. Il est ensuite facile de déclencher l'exécution de ce programme à partir de l'éditeur utilisé.

    Une autre possibilité est d'employer un langage de script comme Python.
    Tu vas loin ... je ne vois sincèrement pas l'utilité d'aller carrément coder un programme juste pour afficher un header surtout qu'ici si j'ai juste, c'est bien un header pour se conformer aux normes d'une école, et donc pas à but d'apprentissage.
    D'autant que dans cette école, un caractère faux dans le header et c'est zéro au projet ... dur
    Perso j'irais pas prendre le risque de coder ça dans un autre langage, perdre inutilement du temps pour finalement risquer une potentielle bulle. Sous vim ça se fait en quelques lignes ( mais je me rappelle plus lesquelles ).

  5. #5
    Membre chevronné
    Homme Profil pro
    très occupé
    Inscrit en
    Juillet 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : très occupé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 137
    Par défaut
    Ce n'est pas si simple de le faire entièrement en Vim script, même si cela semble possible compte tenu de la richesse de ses possibilités, et je suis assez d'accord avec pvincent sur le fait que c'est un travail lourd si le but n'est pas d'apprendre Vim script (ou qu'il ne le connaît pas déjà).

    En fait, ma remarque vise à faire comprendre au posteur initial que la méthode est mauvaise, et s'il cherchait un peu, il verrait qu'il y a des outils qui font cela, et qu'il devrait construire son entête et sa façon de procéder autour de ce que peuvent faire ces outils, et pas l'inverse.

    J'ignore si notre ami 42born2code a Subversion ou CVS sur sa machine, ou s'il peut l'installer. Si c'est le cas et qu'il peut utiliser ces outils, la lecture de ceci pourrait l'éclairer : http://svnbook.red-bean.com/nightly/....keywords.html

    Et plus besoin de Vim script, ni de déclencher quoi que ce soit avec ^C^H ou autre chose : les mots clefs sont mis à jour à chaque check-out de version.

    C'est quand même moins casse-gueule que d'oublier de mettre à jour l'entête manuellement, ou d'oublier de faire ^C^H : le système de gestion de version a ces informations sous réserve que l'on y déverse bien les modifications.

    C'est plus difficile s'il utilise git, qui est génial, mais pas sur ce point auquel Linus Torvalds semble allergique : http://www.gelato.unsw.edu.au/archiv...610/28891.html


    Eks

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Avec Vim, il existe plein de plugins qui sont des template/snippet expanders.
    J'en maintiens un (le fork d'un à vrai dire) : MuTemplate.

    Il propose déjà un header par défaut pour plusieurs de type de fichiers. Cela peut être surchargé/supplanté. Pour le C, il te faudrait copier https://code.google.com/p/lh-vim/sou...eader.template dans $HOME/.vim/template/c/internals/ (1) pour adapter le cartouche à tes besoins.

    L'expansion est automatique sur l'ouverture d'un nouveau fichier, ou éventuellement il faudrait rajouter un snippet qui inclue c/internals/c-file-header pour pouvoir le charger manuellement avec un i_CTRL-SPACE. (Au pire, un mapping sur la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :MuTemplate c/internals/c-file-header
    fera l'affaire)

    Pour la mise à jour de la date de dernière modification. C'est possible j'ai du code qui permet de faire ça (dans un plugin qui fait d'autres choses => mixer: ça et ça) mais pas de plugin dédié à cette tâche. Il est possible que cela existe. En général, on refile le bébé à $Id$ avec certains gestionnaires de versions.

    Pour l'insertion d'informations venant de tracker. J'ai croisé un plugin qui interroge github pour récupérer des infos. Mais ... ce n'est vraiment pas la bonne approche (que de parasiter les commentaires d'un code avec les issues d'un tracker). Après github, c'est très spécifique. Pas sûr que tu puisses l'exploiter.


    (1) ou mieux dans un répertoire dédié aux templates de ton projet -- il te faudrait utiliser ma version (car compatible avec mu-template) de local_vimrc pour y spécifier le répertoire racine de ton projet
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Par défaut
    Pour répondre à la premier question :
    Je cherche à crée mon propre header quelque peut similaire a un header d'une autre école car je trouve cela bizarre de ne pas en avoir un et puis car je pense que cela était un exercice intéressant sauf que j'ai un peu de mal a le concevoir.

    actuellement j'ai déjà codé chaque éléments en c :
    - le logo
    - le cadre

    Je travail essentiellement sous EMACS je sais c'est pas forcement le meilleurs éditeur de code mais il me convient parfaitement.

    Je vous remercie de toute vos réponses bien que je n'ai pas très bien compris ce quel contenait. je ne suis pas très a l'aise avec les scripts vim sa reste assez abstrait je suis relativement débutant dans la programmation. si vous avez d'autre lien dans le même genre avec des tutos plus détailler je ne suis pas contre car la je n'ai aucune idée.

    bien à vous
    42born2code

Discussions similaires

  1. [Débat] Qui choisir entre Vim et Emacs ?
    Par python-learn dans le forum Linux
    Réponses: 9
    Dernier message: 27/10/2014, 16h33
  2. vim & emacs : Qu'ont t'ils de plus ?
    Par Ekinoks dans le forum Linux
    Réponses: 88
    Dernier message: 08/10/2014, 14h25
  3. Equivalent à "[ctrl]-c q" de emacs sous vim.
    Par valefor dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 12/07/2007, 18h17
  4. Proposition de nouvelles FAQ : Vim (Vi) et d'Emacs.
    Par Yoshidu62 dans le forum Evolutions du club
    Réponses: 3
    Dernier message: 03/11/2006, 18h52
  5. Utiliser Borland C++ avec Emacs sous Windows
    Par Eikichi dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/03/2003, 08h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo