emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Re: Frequently used files/headings


From: Nathan Neff
Subject: [Orgmode] Re: Frequently used files/headings
Date: Thu, 6 May 2010 02:06:56 -0500

On Thu, Apr 29, 2010 at 10:47 AM, Nathan Neff <address@hidden> wrote:
> Currently, I'm using org-id-get-create to generate a unique ID
> for headings that I frequently go to in org-mode.
>
> * Foo
> :PROPERTIES:
> :ID: F3B14102-A66D-408C-8833-1F9CF7E5047C
> :END:
>
> Then, I copy the newly created ID to the kill-ring,
> and paste it into a block like this:
>
> (global-set-key (kbd "<f6> f") (lambda () "Goto Foo Org File"
>    (interactive)
>    (org-id-goto "F3B14102-A66D-408C-8833-1F9CF7E5047C")))
>
> This will map F6-f to jump to Foo.
>
> I know that there are many ways to navigate org-files, but using the
> ID is great because it requires only two keystrokes.
>
> This works pretty good, except I'd like to improve three things:
>
> 1)  I'd like to be able to see a menu of where I've mapped my shortcuts
> 2)  I'd like to simplify the creation of these IDs and shortcut keys.
> 3)  I have about 10 quick-keys now, so I have 30 lines of very similar code
>
> I'm sensing an org-babel type approach where I could define an org-mode
> table like this:
>
> | Name | Key       | ID |
> | Foo    | "<f6> f"  | 123456779 |
>
> Then, I could loop through the table, and for each row, I could
> run this code:
>
> (global-set-key (kbd <COLUMN 2>) (lambda () <COLUMN 1>
>    (interactive)
>    (org-id-goto <COLUMN 3>)))
>

I've made some progress on this, and I've defined a table like this:

#+tblname:navigation-shortcuts
| Foo Org File        | <f6 v>   | 733BD03F-0938-432F-B59A-BE235A2DE7E2 |
| Bar Org File        |  <f6 b>  |  123456 |

I would like to map a function that iterates over the items in the
table, and maps
the keyboard string in column 2 to the ID in column 3.

I tried something like this, but all I get is "Wrong type argument:
integer-or-marker-p, (quote (second shortcut-def))"

#+srcname: map-nav(navigation-shortcuts=navigation-shortcuts)
#+begin_src emacs-lisp
 (defun map-navigation-shortcuts (shortcut-def)
(global-set-key (kbd (second shortcut-def)) (lambda () "Goto Foo Org File"
    (interactive)
    (org-id-goto '(third shortcut-def)))))

(mapcar #'map-navigation-shortcuts navigation-shortcuts)

#+end_src

Can anyone point out where I'm going wrong?

Thanks,
--Nate




reply via email to

[Prev in Thread] Current Thread [Next in Thread]