emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Use environment variable for location of templates?
@ 2009-06-19 16:39 Nathan Neff
  2009-06-20  0:19 ` Jere McDevitt
  0 siblings, 1 reply; 3+ messages in thread
From: Nathan Neff @ 2009-06-19 16:39 UTC (permalink / raw)
  To: emacs-orgmode

Hello,

I'm a beginner at lisp/emacs, and realize this is a basic question.

I would like to use an environment variable WORKDIR to specify the
directory where
my remember templates are located.

I would like to have a template located in WORKDIR/tasks.org

Using the code below, when I invoke remember-mode and press "t", I get
the default
remember template instead of the WORKDIR/tasks.org.

;; I can get the value of WORKDIR successfully
(setq org-directory (getenv "WORKDIR"))

(setq org-remember-templates
      '(
	("Personal" ?p "* %U %?\n\n  %i\n  %a" "~/Documents/personal/notes.org")	
	("Work Tasks" ?t "* TODO %U %?\n\n  %i\n  %a" (concat org-directory
"tasks.org"))
))

Any help would be appreciated.

Thanks,
--Nate

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Use environment variable for location of templates?
  2009-06-19 16:39 Use environment variable for location of templates? Nathan Neff
@ 2009-06-20  0:19 ` Jere McDevitt
  2009-06-20  2:47   ` Nick Dokos
  0 siblings, 1 reply; 3+ messages in thread
From: Jere McDevitt @ 2009-06-20  0:19 UTC (permalink / raw)
  To: Nathan Neff; +Cc: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 1838 bytes --]

I think the issue is that you need to supply a function to be invoked to
create the file name.

I tested your approach and found if you change the line to use a lambda
function

       ("Work Tasks" ?t "* TODO %U %?\n\n  %i\n  %a" (lambda() (concat
org-directory "tasks.org")))

seems to work.  Make sure that your environment variable ends in a / so the
path is constructed correctly.

Jere

On Fri, Jun 19, 2009 at 12:39 PM, Nathan Neff <nathan.neff@gmail.com> wrote:

> Hello,
>
> I'm a beginner at lisp/emacs, and realize this is a basic question.
>
> I would like to use an environment variable WORKDIR to specify the
> directory whereOh, I'm familiar with the file variables and all, thanks for
> the tip.
>
> Since the org-remember code is written to support files that are not in
> org-mode as targets of remember items, it just seemed to me it shouldn't
> then switch back to assuming it was an org mode file simply because the text
> being inserted resembles a particular type of regexp.
> my remember templates are located.
>
> I would like to have a template located in WORKDIR/tasks.org
>
> Using the code below, when I invoke remember-mode and press "t", I get
> the default
> remember template instead of the WORKDIR/tasks.org.
>
> ;; I can get the value of WORKDIR successfully
> (setq org-directory (getenv "WORKDIR"))
>
> (setq org-remember-templates
>      '(
>        ("Personal" ?p "* %U %?\n\n  %i\n  %a" "~/Documents/personal/
> notes.org")
>        ("Work Tasks" ?t "* TODO %U %?\n\n  %i\n  %a" (concat org-directory
> "tasks.org"))
> ))
>
> Any help would be appreciated.
>
> Thanks,
> --Nate
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>

[-- Attachment #1.2: Type: text/html, Size: 2732 bytes --]

[-- Attachment #2: Type: text/plain, Size: 204 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Use environment variable for location of templates?
  2009-06-20  0:19 ` Jere McDevitt
@ 2009-06-20  2:47   ` Nick Dokos
  0 siblings, 0 replies; 3+ messages in thread
From: Nick Dokos @ 2009-06-20  2:47 UTC (permalink / raw)
  To: Jere McDevitt; +Cc: emacs-orgmode

Jere McDevitt <jere.mcdevitt@gmail.com> wrote:

> I think the issue is that you need to supply a function to be invoked
> to create the file name.
> 
> I tested your approach and found if you change the line to use a
> lambda function
> 
>        ("Work Tasks" ?t "* TODO %U %?\n\n  %i\n  %a" (lambda() (concat
> org-directory "tasks.org")))
> 
> seems to work.  Make sure that your environment variable ends in a /
> so the path is constructed correctly.
> 
> Jere
> 
> On Fri, Jun 19, 2009 at 12:39 PM, Nathan Neff <nathan.neff@gmail.com> wrote:
> 
>     Hello,
>    
>     I'm a beginner at lisp/emacs, and realize this is a basic question.
>    
>     I would like to use an environment variable WORKDIR to specify the
>     directory whereOh, I'm familiar with the file variables and all, thanks for the tip.
>    
>     Since the org-remember code is written to support files that are
>     not in org-mode as targets of remember items, it just seemed to me
>     it shouldn't then switch back to assuming it was an org mode file
>     simply because the text being inserted resembles a particular type
>     of regexp.  my remember templates are located.
>    
>     I would like to have a template located in WORKDIR/tasks.org
>    
>     Using the code below, when I invoke remember-mode and press "t", I get
>     the default
>     remember template instead of the WORKDIR/tasks.org.
>    
>     ;; I can get the value of WORKDIR successfully
>     (setq org-directory (getenv "WORKDIR"))
>    
>     (setq org-remember-templates
>          '(
>            ("Personal" ?p "* %U %?\n\n  %i\n  %a" "~/Documents/personal/notes.org")
>            ("Work Tasks" ?t "* TODO %U %?\n\n  %i\n  %a" (concat org-directory
>     "tasks.org"))
>     ))
>    
>     Any help would be appreciated.
>    

Jere is right in general, but for this particular case, the simpler
solution is to use just the file name: org interprets that to mean a
file relative to org-directory:

(setq org-directory (getenv "WORKDIR"))
(setq org-remember-templates
      '(
        ("Personal" ?p "* %U %?\n\n  %i\n  %a" "~/Documents/personal/notes.org")
        ("Work Tasks" ?t "* TODO %U %?\n\n  %i\n  %a" "tasks.org")
        ))

Nick

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-06-20  2:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-19 16:39 Use environment variable for location of templates? Nathan Neff
2009-06-20  0:19 ` Jere McDevitt
2009-06-20  2:47   ` Nick Dokos

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).