nice. I have similar code in org-ref for a ref links to labels, but it doesn't have #+name in it yet, but it does do table names. You might find the function org-label-store-link ( https://github.com/jkitchin/jmax/blob/master/org-ref.org#label) interesting, so you can use C-c l and C-c C-l to put your links in. I think you could do something like that with #+name. John ----------------------------------- John Kitchin Associate Professor Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 http://kitchingroup.cheme.cmu.edu On Sat, May 24, 2014 at 11:32 PM, Thomas S. Dye wrote: > Aloha Bastien, > > Bastien writes: > > > Hi Thomas, > > > > tsd@tsdye.com (Thomas S. Dye) writes: > > > >> Has anyone implemented a helm interface for Org-mode #+name lines? I > >> think it might be useful for inserting cross reference links. > > > > did you try > > > > https://github.com/emacs-helm/helm/blob/master/helm-org.el > > > > ? > > This code, adapted from some code I found on John Kitchin's blog, does > what I want. > > ** Cross references > #+name: tsd-xref > #+begin_src emacs-lisp > (defun tsd-get-names-and-labels () > (interactive) > (save-excursion > (goto-char (point-min)) > (let ((matches '())) > (while (re-search-forward "\\#\\+\\(name\\|label\\):\\s-\\(.*\\)" > (point-max) t) > (add-to-list 'matches (match-string-no-properties 2) t)) > matches))) > > (defun tsd-org-insert-crossref-link (&optional arg) > (interactive (list (completing-read "insert: " > (tsd-get-names-and-labels)))) > (insert (format "[[%s]]" arg))) > #+end_src > > Now, when I'm referring to something I've labeled or named, I call > tsd-org-insert-crossref-link and helm works on a list of labels and > names defined in the buffer. > > It's almost as convenient as using Carsten's reftex mode when writing in > LaTeX. > > All the best, > Tom > -- > Thomas S. Dye > http://www.tsdye.com > >