Re: [O] Function that jumps to an entry with a certain CUSTOM_ID
+1 * Non-technical feedback :: - Thank you so much for sharing. I've been looking for something like this for a while. - I hope it'll make it into org-mode some way or another, it seems like a valuable addition. - imho the HELM integration is essential. Leo Ufimtsev | Software Engineer @ Eclipse Team - Original Message - From: "Christoph LANGE" To: emacs-orgmode@gnu.org Sent: Tuesday, March 31, 2015 12:36:45 PM Subject: [O] Function that jumps to an entry with a certain CUSTOM_ID Hi all, the following function has served me well for a few years, so I thought I'd share it. I would even be happy to contribute it to the codebase of org-mode (core or contrib); however in this case someone would have to point me to a fool-proof guide for how to do this. I know that for contributing code I will have to sign some FSF copyright forms, and I know how to use git, but I don't know the exact org-mode specific steps of doing so. --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- (defun org-jump-to-id () "Asks for an identifier and searches for the first entry in the current file that has this identifier as a CUSTOM_ID property." (interactive) (let* ((property "CUSTOM_ID") (custom-id (org-icompleting-read "CUSTOM_ID of entry: " (mapcar 'list (org-property-values property) (org-link-search (concat "#" custom-id (define-key org-mode-map (kbd "\C-cj") 'org-jump-to-id) --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- This implementation works efficiently in a 4 MB org file with 100 IDs. Together with ido or helm I find it a very user-friendly way of jumping to frequently used headlines. I noticed that org-babel-ref-goto-headline-id does something similar, so maybe some code could be shared among the two functions. Cheers, Christoph -- Dr. Christoph Lange, Enterprise Information Systems Department Applied Computer Science @ University of Bonn; Fraunhofer IAIS http://langec.wordpress.com/about, Skype duke4701 → Semantic Publishing Challenge: Assessing the Quality of Scientific Output ESWC, 31 May–4 June 2014, Portorož, Slovenia. https://tinyurl.com/SPChallenge15 Submission deadline 27 March (abstracts: 20 March)
Re: [O] Function that jumps to an entry with a certain CUSTOM_ID
Christoph Lange writes: > On Mar 31, 2015 9:53 PM, "Nicolas Goaziou" wrote: >> The problem is that we're running out of interesting keybindings. > > Let me ask the question differently: as all reasonable key bindings are > taken (a statement to which I tend to agree), is the suggestion of > interactive functions to be added to the core of org-mode no longer > appropriate? IMO we can't afford maintaining all end-user functions imaginable in "org.el". What is possible, however is to extend some existing behaviour. For example, `org-open-at-point' could be a good candidate: with C-u C-u, it could offer to type in a link and open it. So, in order to jump to a custom-id, you can use C-u C-u C-o #my-custom RET Of course, you lose completion, in this case, which is a serious drawback. Another option would be to extend `org-goto' (C-c C-j) and offer to jump to custom-id. > But I think I should rather aim at Worg's "contrib" directory, There's no such thing as Worg "contrib" directory. There's Worg, OT1H, and a contrib/ directory OTOH, but they are not related. Worg is a good place to share useful code snippets. Regards,
Re: [O] Function that jumps to an entry with a certain CUSTOM_ID
On Mar 31, 2015 9:53 PM, "Nicolas Goaziou" wrote: > The problem is that we're running out of interesting keybindings. Let me ask the question differently: as all reasonable key bindings are taken (a statement to which I tend to agree), is the suggestion of interactive functions to be added to the core of org-mode no longer appropriate? I.e. should I contribute them to Worg (with which I still need to familiarise myself) rather than suggesting them here? Or, asking about a middle course, what's the role of org's "contrib" directory? (Is it even suitable for something that is not a complete plugin of its own right, but rather just a single function?) > "C-c > j" is not an option since it is reserved to users. Sorry, this was unfortunate in my initial post. I didn't intend to hard-code this as the "default" key binding, but it was rather meant to be read as "if you like this function, you could bind it, for example, to ...". > Note that you can use > > (let ((h (org-find-property "CUSTOM_ID" custom-id))) > (when h (goto-char h))) > > instead of > > (org-link-search ...) > > for one less level of indirection. Thanks - makes sense. However probably not if I write a tutorial in the style of "if you want to do , then copy the following lines to your. emacs". But I think I should rather aim at Worg's "contrib" directory, with a short elisp file containing my function, plus a short HTML file explaining that there exists an elisp file containing a function that does - does this make sense? Cheers, and thanks for your advice, Christoph -- Christoph Lange(-Bever) http://langec.wordpress.com/about Sent from a mobile device; please excuse my brevity.
Re: [O] Function that jumps to an entry with a certain CUSTOM_ID
Hello, Christoph LANGE writes: > the following function has served me well for a few years, so > I thought I'd share it. I would even be happy to contribute it to the > codebase of org-mode (core or contrib); however in this case someone > would have to point me to a fool-proof guide for how to do this. > I know that for contributing code I will have to sign some FSF > copyright forms, and I know how to use git, but I don't know the exact > org-mode specific steps of doing so. The problem is that we're running out of interesting keybindings. "C-c j" is not an option since it is reserved to users. Another option would be to add it to Worg. > --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- > (defun org-jump-to-id () > "Asks for an identifier and searches for the first entry in the > current file that has this identifier as a CUSTOM_ID property." > (interactive) > (let* ((property "CUSTOM_ID") > (custom-id (org-icompleting-read "CUSTOM_ID of entry: " > (mapcar 'list > (org-property-values property) > (org-link-search (concat "#" custom-id > > (define-key org-mode-map (kbd "\C-cj") 'org-jump-to-id) > --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- > > This implementation works efficiently in a 4 MB org file with 100 IDs. > Together with ido or helm I find it a very user-friendly way of > jumping to frequently used headlines. Note that you can use (let ((h (org-find-property "CUSTOM_ID" custom-id))) (when h (goto-char h))) instead of (org-link-search ...) for one less level of indirection. > I noticed that org-babel-ref-goto-headline-id does something similar, > so maybe some code could be shared among the two functions. Indeed. I modified it so it uses `org-find-property'. Regards, -- Nicolas Goaziou
[O] Function that jumps to an entry with a certain CUSTOM_ID
Hi all, the following function has served me well for a few years, so I thought I'd share it. I would even be happy to contribute it to the codebase of org-mode (core or contrib); however in this case someone would have to point me to a fool-proof guide for how to do this. I know that for contributing code I will have to sign some FSF copyright forms, and I know how to use git, but I don't know the exact org-mode specific steps of doing so. --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- (defun org-jump-to-id () "Asks for an identifier and searches for the first entry in the current file that has this identifier as a CUSTOM_ID property." (interactive) (let* ((property "CUSTOM_ID") (custom-id (org-icompleting-read "CUSTOM_ID of entry: " (mapcar 'list (org-property-values property) (org-link-search (concat "#" custom-id (define-key org-mode-map (kbd "\C-cj") 'org-jump-to-id) --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- %< --- This implementation works efficiently in a 4 MB org file with 100 IDs. Together with ido or helm I find it a very user-friendly way of jumping to frequently used headlines. I noticed that org-babel-ref-goto-headline-id does something similar, so maybe some code could be shared among the two functions. Cheers, Christoph -- Dr. Christoph Lange, Enterprise Information Systems Department Applied Computer Science @ University of Bonn; Fraunhofer IAIS http://langec.wordpress.com/about, Skype duke4701 → Semantic Publishing Challenge: Assessing the Quality of Scientific Output ESWC, 31 May–4 June 2014, Portorož, Slovenia. https://tinyurl.com/SPChallenge15 Submission deadline 27 March (abstracts: 20 March)