Stephan Schmitt <drmab...@cs.tu-berlin.de> writes:
> Hi Nathan,
>
> when the lambda form is evaluated (when you press f6) the variable
> shortcut-def doesn't exist any more.
>
> The problem is that elisp doesn't support closures.  See
> this info page:
> (elisp) Top > Variables > Variable Scoping > Extent
>
> As a workaraound you can save the table in a global variable with setq
> and access that variable in the lambda form.

Another way would be to use `lexical-let' from the CL package, i.e.:

  (global-set-key (read-kbd-macro (second shortcut-def))
                  (lexical-let ((shortcut-def shortcut-def))
                    (lambda ()
                      (interactive)
                      (org-id-goto (third shortcut-def)))))

should do what you want.

  Štěpán

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

Reply via email to