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)
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)

Poser une question


Camille Bourgoin a écrit :
Une liste de liste de chemin.
Une liste de chemin.
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.
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)
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 !
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)
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)
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 :