Demonstrate parsing of an abbreviated link: Define the link #+begin_src emacs-lisp (org-link-set-parameters "file+my-lengthy-application-link" :help-echo "help-echo not showing, if mouse is on abbreviated link!") #+end_src #+RESULTS: Set some abbreviations #+begin_src emacs-lisp (setq org-link-abbrev-alist '( ("_" . "file+my-lengthy-application-link:::%s") ("__" . "file+my-lengthy-application-link:%s") )) #+end_src #+RESULTS: : ((_ . file+my-lengthy-application-link:::%s) (__ . file+my-lengthy-application-link:%s)) * in-buffer links the plain link: [[file+my-lengthy-application-link:::goto_in_buffer_target]] =check :help-echo by mouse roll-over= the abbreviated link: [[_:goto_in_buffer_target]] * links with a relative path to ~./someFile.org~ the plain link: [[file+my-lengthy-application-link:./someFile.org::goto_target]] =check :help-echo by mouse roll-over= the abbreviated link: [[__:./someFile.org::goto_target]] * goto_in_buffer_target a link target * parse the links in this buffer #+begin_src emacs-lisp :results verbatim (org-element-map (org-element-parse-buffer) 'link (lambda (el) ;; (message "link: %s" (org-element-type el)) (let* ((link (org-element-context el)) (path (org-link-unescape (org-element-property :path link))) (option (org-element-property :search-option link))) (message "path: %s \noption: %s \n\n" path option) ))) #+end_src #+RESULTS: #+begin_example ("path: option: goto_in_buffer_target " "path: option: goto_in_buffer_target " "path: ./someFile.org option: goto_target " "path: ./someFile.org option: goto_target ") #+end_example