From mboxrd@z Thu Jan 1 00:00:00 1970 From: "tenspd137 ." Subject: Re: Multiple capture templates in file Date: Wed, 7 Oct 2015 00:45:14 -0600 Message-ID: References: <841td7ravo.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57486) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZjiTV-0008I0-Ce for emacs-orgmode@gnu.org; Wed, 07 Oct 2015 02:45:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZjiTT-0002mn-5J for emacs-orgmode@gnu.org; Wed, 07 Oct 2015 02:45:16 -0400 Received: from mail-ig0-x234.google.com ([2607:f8b0:4001:c05::234]:35479) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZjiTS-0002kX-Tl for emacs-orgmode@gnu.org; Wed, 07 Oct 2015 02:45:15 -0400 Received: by igbkq10 with SMTP id kq10so101787464igb.0 for ; Tue, 06 Oct 2015 23:45:14 -0700 (PDT) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Marco Wahl Cc: emacs-orgmode@gnu.org 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 >> >> 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 >> > >> >