Re: [O] Dynamically creating capture mode templates (solved)
Needed to use backquotes correctly: (setq products '("Firebird" "Ion")) (dolist (product products) (setq org-capture-templates (append org-capture-templates `( (,(substring product 0 1) ,product) (,(concat (substring product 0 1) "t" ) "Todo" entry (file+headline (concat org-directory "/default.org") ,product) "* TODO %?" ) Again - I hope this helps someone else in the future. Thanks! On Fri, Oct 9, 2015 at 12:34 PM, tenspd137 . wrote: > Hi all - > > I was hoping someone could help me figure this out. I have the > following in a .el file I am loading to create keys for my projects: > > (setq projects '("Aa" "Bb" "Cc" "Dd") > > (let (firstLetter) > (dolist (project projects firstLetter) > (setq firstLetter (substring project 0 1)) > (message "%s" firstLetter) > (setq org-capture-templates > (append org-capture-templates > '((firstLetter project) > ((concat firstLetter "t") "Todo" entry > (file+headline (concat org-directory "/default.org") project) "* TODO > %?")) > > C-n (to activate capture mode) > > org-mks: Wrong type argument: sequencep, firstLetter > > > but in the messages window, it prints the firstLetter variable - > shouldn't firstLetter be a string or char? > > Anyway, I can't seem to get this to work - could anyone give me some > insight as to what I am missing? > > Thanks!
[O] Dynamically creating capture mode templates
Hi all - I was hoping someone could help me figure this out. I have the following in a .el file I am loading to create keys for my projects: (setq projects '("Aa" "Bb" "Cc" "Dd") (let (firstLetter) (dolist (project projects firstLetter) (setq firstLetter (substring project 0 1)) (message "%s" firstLetter) (setq org-capture-templates (append org-capture-templates '((firstLetter project) ((concat firstLetter "t") "Todo" entry (file+headline (concat org-directory "/default.org") project) "* TODO %?")) C-n (to activate capture mode) org-mks: Wrong type argument: sequencep, firstLetter but in the messages window, it prints the firstLetter variable - shouldn't firstLetter be a string or char? Anyway, I can't seem to get this to work - could anyone give me some insight as to what I am missing? Thanks!
Re: [O] Multiple capture templates in file
So - I figured it out. I wanted to create a list that ultimatley had the form: '(template template sub-menu-label sub-menu-template) In the scratch buffer, I found I was creating ((("p" "product") ("pt" "Product - Todo" entry (file+headline ... "Tasks") "* TODO %?")) ("t" "Todo" entry (file+headline (concat org-directory "/default.org") "Tasks") "* TODO %?") ("j" "Journal" entry (file+datetree (concat org-directory "/journal.org")) "* %? Entered on %U ")) and the same with (add-to-list 'org-capture-templates '(("p" "product") ("pt" "Product - Todo" entry (file+headline (concat org-directory "/product.org") "Tasks") "* TODO %?")) what I really wanted to do was add each element seperatley: (add-to-list 'org-capture-templates '("p" "Product") 1) (add-to-list 'org-capture-templates '("pt" "Product Todo" entry (file+headline (concat org-directory "/product.org") "Tasks") "* TODO %?") 1 ) with the ones to append to the end of the list instead of beginning. and then I thought there must be a better way - and there was - I came up with: (setq org-capture-templates (append org-capture-templates '(("p" "product") ("pt" "Product - Todo" entry (file+headline (concat org-directory "/product.org") "Tasks") "* TODO %?")) )) and stuck it in a test.el file. I loaded it at the end of my org-mode configuration in .emacs and I go the submenus I wanted. I think I figured it out and have the recipie for what I want to do. This is probably basic stuff for everyone here, but I hope putting it in email may make it searchable for someone later. Thanks for all the help, suggestions and ideas! -C On Tue, Oct 6, 2015 at 6:45 PM, tenspd137 . wrote: > One thought I need to try either pushing one item at a time or > concatenation the list of options. I'll try it when I get a chance. > Playtime is over for now. Thanks for all help and suggestions so far. > > C > > On Oct 6, 2015 5:43 PM, "tenspd137 ." wrote: >> >> I can do the following in .emacs >> >> (setq org-capture-templates >> '(("t" "Todo" entry (file+headline (concat org-directory >> "/default.org") "Tasks") >> "* TODO %?") >> ("j" "Journal" entry (file+datetree (concat org-directory >> "/journal.org")) >> "* %?\nEntered on %U\n") >> ;;product or work specific stuff - I would like to move these >> to files and have >> ;;them loaded - maybe in the future >> ("p" "product") >> ("pt" "Product Todo" entry (file+headline (concat org-directory >> "/product.org") "Tasks") "* TODO %?"))) >> >> and it works as expected >> >> but if I do this in .emacs: >> (setq org-capture-templates >> '(("t" "Todo" entry (file+headline (concat org-directory >> "/default.org") "Tasks") >> "* TODO %?") >> ("j" "Journal" entry (file+datetree (concat org-directory >> "/journal.org")) >> "* %?\nEntered on %U\n"))) >> ;;product or work specific stuff - I would like to move these >> to files and have >> ;;them loaded - maybe in the future >> >> (load-file (concat org-directory >> "/capture-templates/product-templates.el")) >> >> with product-templates containing: >> >> (push '(("p" "product") ("pt" "Product - Todo" entry (file+headline >> (concat org-directory "/product.org") "Tasks") "* TODO %?")) >> org-capture-templates) >> >> and then I use C-c n to go to capture mode, it just hangs with the >> mouse cursor in a spinning wheel. Am I not translating the part to go >> into submenus correctly, or can you not add sub-menus as I am doing. >> >> Thanks! >> >> -C >> >> On Tue, Oct 6, 2015 at 2:38 PM, Marco Wahl >> wrote: >> > Hi! >> > >> > "tenspd137 ." writes: >> > >> >> I am trying to figure out how to store multiple capture templates in a >> >> file, have several files of related templates, and then load all the >
Re: [O] Multiple capture templates in file
One thought I need to try either pushing one item at a time or concatenation the list of options. I'll try it when I get a chance. Playtime is over for now. Thanks for all help and suggestions so far. C On Oct 6, 2015 5:43 PM, "tenspd137 ." wrote: > I can do the following in .emacs > > (setq org-capture-templates > '(("t" "Todo" entry (file+headline (concat org-directory > "/default.org") "Tasks") > "* TODO %?") > ("j" "Journal" entry (file+datetree (concat org-directory > "/journal.org")) > "* %?\nEntered on %U\n") > ;;product or work specific stuff - I would like to move these > to files and have > ;;them loaded - maybe in the future > ("p" "product") > ("pt" "Product Todo" entry (file+headline (concat org-directory > "/product.org") "Tasks") "* TODO %?"))) > > and it works as expected > > but if I do this in .emacs: > (setq org-capture-templates > '(("t" "Todo" entry (file+headline (concat org-directory > "/default.org") "Tasks") > "* TODO %?") > ("j" "Journal" entry (file+datetree (concat org-directory > "/journal.org")) > "* %?\nEntered on %U\n"))) > ;;product or work specific stuff - I would like to move these > to files and have > ;;them loaded - maybe in the future > > (load-file (concat org-directory > "/capture-templates/product-templates.el")) > > with product-templates containing: > > (push '(("p" "product") ("pt" "Product - Todo" entry (file+headline > (concat org-directory "/product.org") "Tasks") "* TODO %?")) > org-capture-templates) > > and then I use C-c n to go to capture mode, it just hangs with the > mouse cursor in a spinning wheel. Am I not translating the part to go > into submenus correctly, or can you not add sub-menus as I am doing. > > Thanks! > > -C > > On Tue, Oct 6, 2015 at 2:38 PM, Marco Wahl > wrote: > > Hi! > > > > "tenspd137 ." writes: > > > >> I am trying to figure out how to store multiple capture templates in a > >> file, have several files of related templates, and then load all the > >> files stored in a directory. For example, lets say I have two > >> projects at work WorkProject1 and WorkProject2. Then I have two files > >> in a directory org-templates called WorkProj1Templates.el and > >> WorkTemplates2.el. How can I append the templates in these files to > >> or capture templates? In my main .emacs, I have: > >> > >> (setq org-capture-templates > >> '(("t" "Todo" entry (file+headline (concat org-directory > >> "/default.org") "Tasks") > >> "* TODO %?") > >> ("j" "Journal" entry (file+datetree (concat org-directory > >> "/journal.org")) > >> "* %?\nEntered on %U\n"))) > >> > >> I would like to then load the template files in org-templates. That > >> way, when a project ends, I can just yank the templates. I have > >> experimentally tried using add-to-list with org-capture-templates > >> without success. Either that can't be done or my syntax was wrong? > > > > How could anyone tell if you don't show your attempt? > > > >> Does anyone have any ideas? > > > > What about this? > > > > WorkProj1Templates.el: > > > > #v+ > > (push '("1" "Todo" entry > > (file+headline > > (concat org-directory "/WorkProj1.org") > > "Tasks") > > "* TODO %?") > > org-capture-templates) > > #v- > > > > -- > > Marco Wahl > > GPG: 0x49010A040A3AE6F2 > > > > >
Re: [O] Multiple capture templates in file
I can do the following in .emacs (setq org-capture-templates '(("t" "Todo" entry (file+headline (concat org-directory "/default.org") "Tasks") "* TODO %?") ("j" "Journal" entry (file+datetree (concat org-directory "/journal.org")) "* %?\nEntered on %U\n") ;;product or work specific stuff - I would like to move these to files and have ;;them loaded - maybe in the future ("p" "product") ("pt" "Product Todo" entry (file+headline (concat org-directory "/product.org") "Tasks") "* TODO %?"))) and it works as expected but if I do this in .emacs: (setq org-capture-templates '(("t" "Todo" entry (file+headline (concat org-directory "/default.org") "Tasks") "* TODO %?") ("j" "Journal" entry (file+datetree (concat org-directory "/journal.org")) "* %?\nEntered on %U\n"))) ;;product or work specific stuff - I would like to move these to files and have ;;them loaded - maybe in the future (load-file (concat org-directory "/capture-templates/product-templates.el")) with product-templates containing: (push '(("p" "product") ("pt" "Product - Todo" entry (file+headline (concat org-directory "/product.org") "Tasks") "* TODO %?")) org-capture-templates) and then I use C-c n to go to capture mode, it just hangs with the mouse cursor in a spinning wheel. Am I not translating the part to go into submenus correctly, or can you not add sub-menus as I am doing. Thanks! -C On Tue, Oct 6, 2015 at 2:38 PM, Marco Wahl wrote: > Hi! > > "tenspd137 ." writes: > >> I am trying to figure out how to store multiple capture templates in a >> file, have several files of related templates, and then load all the >> files stored in a directory. For example, lets say I have two >> projects at work WorkProject1 and WorkProject2. Then I have two files >> in a directory org-templates called WorkProj1Templates.el and >> WorkTemplates2.el. How can I append the templates in these files to >> or capture templates? In my main .emacs, I have: >> >> (setq org-capture-templates >> '(("t" "Todo" entry (file+headline (concat org-directory >> "/default.org") "Tasks") >> "* TODO %?") >> ("j" "Journal" entry (file+datetree (concat org-directory >> "/journal.org")) >> "* %?\nEntered on %U\n"))) >> >> I would like to then load the template files in org-templates. That >> way, when a project ends, I can just yank the templates. I have >> experimentally tried using add-to-list with org-capture-templates >> without success. Either that can't be done or my syntax was wrong? > > How could anyone tell if you don't show your attempt? > >> Does anyone have any ideas? > > What about this? > > WorkProj1Templates.el: > > #v+ > (push '("1" "Todo" entry > (file+headline > (concat org-directory "/WorkProj1.org") > "Tasks") > "* TODO %?") > org-capture-templates) > #v- > > -- > Marco Wahl > GPG: 0x49010A040A3AE6F2 > >
Re: [O] Multiple capture templates in file
Marco - Thanks for the reply. "How could anyone tell if you don't show your attempt?" - Good point. Wasn't thinking there. First I will try what you have suggested since you were kind enough to create the code, and if I can't get that working, I'll show what I tried and also go back and re-create what I was trying with add-to-list. I am new to Lisp and Elisp, but I think your function is saying push an association list (which is the template) to the variable org-capture-templates. Please forgive my apparent slowness :) On Tue, Oct 6, 2015 at 2:38 PM, Marco Wahl wrote: > Hi! > > "tenspd137 ." writes: > >> I am trying to figure out how to store multiple capture templates in a >> file, have several files of related templates, and then load all the >> files stored in a directory. For example, lets say I have two >> projects at work WorkProject1 and WorkProject2. Then I have two files >> in a directory org-templates called WorkProj1Templates.el and >> WorkTemplates2.el. How can I append the templates in these files to >> or capture templates? In my main .emacs, I have: >> >> (setq org-capture-templates >> '(("t" "Todo" entry (file+headline (concat org-directory >> "/default.org") "Tasks") >> "* TODO %?") >> ("j" "Journal" entry (file+datetree (concat org-directory >> "/journal.org")) >> "* %?\nEntered on %U\n"))) >> >> I would like to then load the template files in org-templates. That >> way, when a project ends, I can just yank the templates. I have >> experimentally tried using add-to-list with org-capture-templates >> without success. Either that can't be done or my syntax was wrong? > > How could anyone tell if you don't show your attempt? > >> Does anyone have any ideas? > > What about this? > > WorkProj1Templates.el: > > #v+ > (push '("1" "Todo" entry > (file+headline > (concat org-directory "/WorkProj1.org") > "Tasks") > "* TODO %?") > org-capture-templates) > #v- > > -- > Marco Wahl > GPG: 0x49010A040A3AE6F2 > >
[O] Multiple capture templates in file
Hi all, I am trying to figure out how to store multiple capture templates in a file, have several files of related templates, and then load all the files stored in a directory. For example, lets say I have two projects at work WorkProject1 and WorkProject2. Then I have two files in a directory org-templates called WorkProj1Templates.el and WorkTemplates2.el. How can I append the templates in these files to or capture templates? In my main .emacs, I have: (setq org-capture-templates '(("t" "Todo" entry (file+headline (concat org-directory "/default.org") "Tasks") "* TODO %?") ("j" "Journal" entry (file+datetree (concat org-directory "/journal.org")) "* %?\nEntered on %U\n"))) I would like to then load the template files in org-templates. That way, when a project ends, I can just yank the templates. I have experimentally tried using add-to-list with org-capture-templates without success. Either that can't be done or my syntax was wrong? Does anyone have any ideas? Another idea is that I could just have templates that take a parameter. I have found how to do this out on the web. Any suggestions on which would be easier? Thanks! -C
[O] org-capture-templates with multi charachter keys
Hi all, I can't seem to find an answer for this, maybe someone could tell me what I am doing wrong. Based on what I read in the manual and examples I have seen, the following is valid for creating org-capture-templates: (setq org-capture-templates '(("t" "Todo" entry (file+headline (concat org-directory "/default.org") "Tasks") "* TODO %?\n %i\n %a") ("j" "Journal" entry (file+datetree (concat org-directory "/journal.org")) "* %?\nEntered on %U\n %i\n %a") ;;product stuff - I would like to move these to files and have ;;them loaded - maybe in the future ("bf" "Bluefin Todo" entry (file+headline (concat org-directory "/bluefin.org") "Tasks") "* TODO %?\n %i\n %a"))) the last one I am using "bf" as a key. When I go to use org capture, the following is shown in the menu Select a capture template === [t] Todo [j] Journal [bf] Bluefin Todo [C] Customize org-capture-templates [q] Abort but when I hit b (as in bf), the mini-buffer just says invalid key `b' How do I use multiple keys? Thanks! -C