From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Abrahamsen Subject: Re: Insert org-id Link at Point via Outline Path Completion Date: Fri, 31 Jul 2015 15:13:42 +0800 Message-ID: <87d1z8yf2x.fsf@ericabrahamsen.net> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45555) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZL4W4-0007eM-OX for emacs-orgmode@gnu.org; Fri, 31 Jul 2015 03:14:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZL4W1-0004to-GE for emacs-orgmode@gnu.org; Fri, 31 Jul 2015 03:14:04 -0400 Received: from plane.gmane.org ([80.91.229.3]:45145) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZL4W1-0004sO-AA for emacs-orgmode@gnu.org; Fri, 31 Jul 2015 03:14:01 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZL4Vx-0007I5-VA for emacs-orgmode@gnu.org; Fri, 31 Jul 2015 09:13:59 +0200 Received: from 114.250.134.173 ([114.250.134.173]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 31 Jul 2015 09:13:57 +0200 Received: from eric by 114.250.134.173 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 31 Jul 2015 09:13:57 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Xebar Saram writes: > i also have a similar workflow and would love to hear Dominic if you > found a solution for this or if anyone on the list has other > suggestions? The function `org-refile-get-targets' is the standard way of producing a list of all possible headings -- ostensibly to refile to, but you can do anything you want with them. If you want to restrict this to Org headings that already have ids (though I'm not sure why you would), you can use the org-id-locations hashtable. I still think you'd have to use one of the above to pick a heading, then go to the heading in a `save-excursion', call `org-store-link', then back to your original location, and call `org-insert-link'. I don't think there's any cleaner way of doing that... Eric > On Tue, May 12, 2015 at 10:57 PM, Dominic Surano > wrote: > > > Hello, > > I use org-mode a lot like a wiki so links to other org-mode > headings are > very common. Currently, I navigate to the heading or pull it up in > an > agenda view, store the link with C-l, going back to where I want > to > insert the link, then insert the link with C-c C-l RET. This is a > bit > time consuming. > > Instead, I would prefer to map a key that allows me to insert a > link at > the current point using tab completion similar to org-refile (C-c > C-w). > Looking through org-id.el, it seems like > org-id-get-with-outline-path > completion was designed for this purpose. I tried: > > (global-set-key "\C-ci" (lambda () (interactive) (org-id-get-with > outline-path-completion))) > > but it didn't work as intended. Anyone have any ideas? > > Thanks! > -D > > For reference, I have the following set in my configuration: > > ;; Use global IDs > (require 'org-id) > (setq org-id-link-to-org-use-id t) > > ;; Update ID file .org-id-locations on startup > (org-id-update-id-locations) > > ;; Targets include this file and any file contributing to the > agenda - > up to 9 levels deep > (setq org-refile-targets (quote ((nil :maxlevel . 9) > (org-agenda-files :maxlevel . 9)))) > (setq org-refile-use-outline-path 'file) > (setq org-outline-path-complete-in-steps t) > (setq org-refile-allow-creating-parent-nodes t)