Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/02/2007, à 12:46

luckytoyn

macro emacs avec parametre? [résolu]

Salut à tous,

je fais de la simulation numérique sous ubuntu 6.10 en C. J'utilise emacs comme éditeur et j'aimerais beaucoup
ne pas avoir sans arret à écrire à la main :

for (int i=0 ; i<nb ; i++)
{

}

... Et tout ce genre de choses... mais je suis sur que vous connaissez tres bien ce petit probleme.

Je sais définir des macros emacs qui me permettent d'écrire (le plus générique possible)
for (int = ; < ; ++)
{

}

mais à chaque fois, je dois remplir à la main les noms des différentes variables...
J'aimerais donc beaucoup arriver à définir une macro qui demande des paramètres (ici i, 0 et nb)
comme ça je pourrais faire des boucles adaptées au code directement.

Je n'ai rien trouvé sur internet qui réponde directement, et je n'ai absolument pas le temps d'apprendre
lisp de front (ça c'est facile à trouver...).
Donc si quelqu'un voit une solution simple...

Merci

Dernière modification par luckytoyn (Le 26/02/2007, à 10:02)


http://perso.ens-lyon.fr/antoine.rozel/

Hors ligne

#2 Le 23/02/2007, à 23:13

JoelS

Re : macro emacs avec parametre? [résolu]

Tu as la possibilité avec le mode macro de "dumper" la macro à l'équivalent ou presque d'une fonction ELISP que tu peut ensuite bidouiller puis sauvegarder. Mais ça reviens à faire du ELISP un moment donné.

Sinon moi dans ces cas, et si je sais exactement le nombre de paramétres a passer, je commence ma macro par lui faire lire une chaine dans une ligne et affecter cette chaine à un premier registre qui contiendra alors la valeur de mon premier paramétre, puis éventuellement passer à la ligne suivante pour le deuxièle registre, etc etc et enfin executer le "vrai" contenu de la macro (l'insert du for (...)) en insérant le premier registre au bon endroit, le second à l'endroit suivant, etc etc.

Dans ton cas, ça donnerait une macro qui soit capable de lire les 2 lignes à partir de la position du curseur, d'affecter chacune à un registre défini, puis de les effacer et d'insérer la boucle C. Donc la ou tu veut mettre la boucle, tu tapes

i
nb

et tu lances ta macro.

Hors ligne

#3 Le 26/02/2007, à 10:02

luckytoyn

Re : macro emacs avec parametre? [résolu]

Ca marche, merci beaucoup!


http://perso.ens-lyon.fr/antoine.rozel/

Hors ligne