GNT sans publicité, site mobile, fonctionnalitées exclusives...

mode org agenda et regexp

Le
Camille Bourgoin
Bonjour !


Je vous écris suite à un petit soucis rencontré avec Emacs LISP. Je
cherche configurer "l'agenda" du mode org de la façon suivante :

Chercher dans les dossiers X et Y tous les fichiers en .org et .ORG et
l'ajouter à l'agenda org (la todo-list en gros).

Se qui se traduit par :

(setq org-agenda-file (list
(directory-files "~/.emacs.d/org/" t "\\.\\(org\\|ORG\\)$")
(directory-files "~/.emacs.d/org/administration/" t "\\.\\(org\\|ORG\\)$")
(directory-files "~/.emacs.d/org/cours/cnam/" t "\\.\\(org\\|ORG\\)$")
(directory-files "~/.emacs.d/org/logiciels/" t "\\.\\(org\\|ORG\\)$")
(directory-files "~/.emacs.d/org/logiciels/emacs/" t "\\.\\(org\\|ORG\\)$")
(directory-files "~/.emacs.d/org/materiel/" t "\\.\\(org\\|ORG\\)$")
(directory-files "~/.emacs.d/org/network/" t "\\.\\(org\\|ORG\\)$")
(directory-files "~/.emacs.d/org/programmation/" t "\\.\\(org\\|ORG\\)$")
(directory-files "~/.emacs.d/org/sites/" t "\\.\\(org\\|ORG\\)$")
))

Mais cette fonction renvoie une sortie de la forme :

(("/home/pomme/dapi/zoubida/blabla.org" "/home/pomme/dapi/zoubidabibi.org")
("/home/pomme/dapi/lavabo/loulou.org" etc.))

Alors que la fonction org-agenda-file attend une sortie de la forme :

("/home/pomme/dapi/zoubida/blabla.org" "/home/pomme/dapi/zoubidabibi.org"
"/home/pomme/dapi/lavabo/loulou.org" etc.)

J'ai rapidement parcourus le manuel Emacs Lisp pour essayer de trouver
une méthode de concaténation des listes, mais ça n'a rien donné.

Ne connaissant pas très bien Emacs LISP (juste les bases), j'avoue
avoir un tout petit besoin d'aide ;) Est-il besoin de préciser que la
solution du problème m'intéresse infiniment plus que sa résolution ?

Merci à vous !

--
www.jeanbaptiste-bourgoin.com (site perso)
www.actu-philosophia.com
mr.camille@im.apinc.org (jabber)
Lire les 11 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Kojak
Le #21771371
Le Thu, 12 Mar 2009 23:21:37 +0100,
Camille Bourgoin a écrit :

[...]
(setq org-agenda-file (list
(directory-files "~/.emacs.d/org/" t "\.\(org\|ORG\)$")
(directory-files "~/.emacs.d/org/administration/" t
[...] ))

Mais cette fonction renvoie une sortie de la forme :



Une liste de liste de chemin.


Alors que la fonction org-agenda-file attend une sortie de la forme :



Une liste de chemin.


[...]
avoir un tout petit besoin d'aide ;) Est-il besoin de préciser que la
solution du problème m'intéresse infiniment plus que sa ré solution ?



Bref, pour résumer ce que tu cherches a faire, c'est joindre dans
une liste commune tout les éléments de chacune des listes.

Voilà, j'ai tout dit.

Sinon, j'ai bien la solution, mais si je te la donne tu ne va pas
être content, oui, vraiment pas content. :-)

Cela dit, si tu ne trouves pas...

Cordialement,

--
Jacques.
Vincent Belaïche
Le #21771361
Kojak a écrit :

Bref, pour résumer ce que tu cherches a faire, c'est joindre dans
une liste commune tout les éléments de chacune des listes.

Voilà, j'ai tout dit.

Sinon, j'ai bien la solution, mais si je te la donne tu ne va pas
être content, oui, vraiment pas content. :-)

Cela dit, si tu ne trouves pas...

Cordialement,




Je ne résiste pas à la tentation de te lâcher la solution:

(append (list 1 2) (list 3 4))

renvoie (1 2 3 4)
Camille Bourgoin
Le #21771351
Kojak
Le Thu, 12 Mar 2009 23:21:37 +0100,
Camille Bourgoin a écrit :

[...]
(setq org-agenda-file (list
(directory-files "~/.emacs.d/org/" t "\.\(org\|ORG\)$")
(directory-files "~/.emacs.d/org/administration/" t
[...] ))

Mais cette fonction renvoie une sortie de la forme :



Une liste de liste de chemin.


Alors que la fonction org-agenda-file attend une sortie de la forme :



Une liste de chemin.




En bon étudiant en philosophie que j'étais, je connais l'importance de
l'utilisation d'un vocabulaire précis et juste. Avant d'envoyer ce
message, il aurait été préférable que je vérifie celui que
j'emploie. Merci de me le rappeler !

[...]
avoir un tout petit besoin d'aide ;) Est-il besoin de préciser que la
solution du problème m'intéresse infiniment plus que sa résolution ?



Bref, pour résumer ce que tu cherches a faire, c'est joindre dans
une liste commune tout les éléments de chacune des listes.

Voilà, j'ai tout dit.

Sinon, j'ai bien la solution, mais si je te la donne tu ne va pas
être content, oui, vraiment pas content. :-)

Cela dit, si tu ne trouves pas...

Cordialement,

--
Jacques.




La réponse ayant été donnée juste après, je peux en effet dire que je
ne suis guère content de moi. Il me suffisait de lire sérieusement et
entièrement le chapitre 5 (5.4 pour être plus précis) du manuel !

--
www.jeanbaptiste-bourgoin.com (site perso)
www.actu-philosophia.com
(jabber)
Camille Bourgoin
Le #21771341
Vincent Belaïche
Kojak a écrit :

Bref, pour résumer ce que tu cherches a faire, c'est joindre dans
une liste commune tout les éléments de chacune des listes.

Voilà, j'ai tout dit.

Sinon, j'ai bien la solution, mais si je te la donne tu ne va pas
être content, oui, vraiment pas content. :-)

Cela dit, si tu ne trouves pas...

Cordialement,




Je ne résiste pas à la tentation de te lâcher la solution:

(append (list 1 2) (list 3 4))

renvoie (1 2 3 4)



Merci beaucoup ! Je remarque au passage que la réponse était sous mon
nez, à la section 4 du cinquième chapitre du manuel de référence. Il
me suffisait de faire un tout petit effort.

Pour la peine, je m'engage à lire le fameux manuel dans son
intégralité très prochainement.

--
www.jeanbaptiste-bourgoin.com (site perso)
www.actu-philosophia.com
(jabber)
Vincent Belaïche
Le #21771331
Il y a aussi une notation plus concise que append.

Tu peux utiliser

`( ,@'(1 2) ,@'(3 4))

Ca s'évalue en :

(1 2 3 4)

Utilise ,@ au lieu de ,@' si tu veux que ce qui suit soit évalué:

`( ,@(list 1 2) ,@(list 3 4))

s'évalue donc en

(1 2 3 4)

Vincent

Camille Bourgoin a écrit :
Kojak
Le Thu, 12 Mar 2009 23:21:37 +0100,
Camille Bourgoin a écrit :

[...]
(setq org-agenda-file (list
(directory-files "~/.emacs.d/org/" t "\.\(org\|ORG\)$")
(directory-files "~/.emacs.d/org/administration/" t
[...] ))

Mais cette fonction renvoie une sortie de la forme :


Une liste de liste de chemin.


Alors que la fonction org-agenda-file attend une sortie de la forme :


Une liste de chemin.




En bon étudiant en philosophie que j'étais, je connais l'importance de
l'utilisation d'un vocabulaire précis et juste. Avant d'envoyer ce
message, il aurait été préférable que je vérifie celui que
j'emploie. Merci de me le rappeler !

[...]
avoir un tout petit besoin d'aide ;) Est-il besoin de préciser que la
solution du problème m'intéresse infiniment plus que sa résolution ?


Bref, pour résumer ce que tu cherches a faire, c'est joindre dans
une liste commune tout les éléments de chacune des listes.

Voilà, j'ai tout dit.

Sinon, j'ai bien la solution, mais si je te la donne tu ne va pas
être content, oui, vraiment pas content. :-)

Cela dit, si tu ne trouves pas...

Cordialement,

--
Jacques.




La réponse ayant été donnée juste après, je peux en effet dire que je
ne suis guère content de moi. Il me suffisait de lire sérieusement et
entièrement le chapitre 5 (5.4 pour être plus précis) du manuel !

Publicité
Suivre les réponses
Poster une réponse
Anonyme