Nick, that did the trick. Thanks very much everybody.


On Thu, Jul 3, 2014 at 7:44 AM, Nick Dokos <ndokos@gmail.com> wrote:
tom <scrawler@gmail.com> writes:

> this
>
> (setq org-link-abbrev-alist
> '(("foo" . "file:/path/to/%s.txt")))
>
> allow me to do this
>
> [[foo:file to open]]
>
> but it creates a file with spaces in the name.  so I'd like to replace "%s" with "%(myfun)".
>
> with your example, how can I get "foo bar  loo" from
>
> [[foo:foo bar  loo]]
>
> see what I mean?
>

Using Thorsten's suggestion

--8<---------------cut here---------------start------------->8---
(setq org-link-abbrev-alist
'(("foo" . "file:/path/to/%(foobar).txt")))

(defun foobar (x)
  (replace-regexp-in-string "[[:space:]]" "_" x))
--8<---------------cut here---------------end--------------->8---

will turn

[[foo:foo bar  loo]]

to

[[file:/path/to/foo_bar__loo.txt]]

when you click on it.
--
Nick