创建 emacs 的 org mode link

在 org mode 可以定义各种链接, 不过我的问题是相反的, 如何创建 org mode 某个笔记标题的链接. 比如 emacs://org/id/uuid, 在外部应用点击这个链接就会切换到 emacs(GUI) 下并跳转到对应笔记. 系统是 macos 10.15. 想请教一下有办法做到这件事么?

这个外部应用是指浏览器?那应该不能,因为安全原因,从一个应用跳到另一个应用一般是调用命令行程序实现的。浏览器中js为了安全肯定是不能调用到命令行程序的

是浏览器. 不过 macos 上很多应用程序都支持链接, 就比如 obsidian 通过 obsidian://advanced-uri?vault=<your-vault>&filepath=my-file&heading=Goal 就可以打开某个标题链接(通过某个插件支持).

有,我在 stackexchange 上回答了,应该也是你问的?

如果你用的是 org-roam,应该配好了就直接能用了

1 个赞

这里是不用 org-roam 的版本:

(setq org-protocol-protocol-alist
      '(("org-id"
         :protocol "id"
         :function link-goto-heading-with-id)
      ))

(defun link-goto-heading-with-id (arg)
  (org-id-goto (plist-get arg :id))
  (raise-frame))

链接是 org-protocol://id?id=93601692-C4E7-4739-8E09-277B85DF81B8.

mac 上 setup 参考 这个链接.

(defun org-copy-uri()
(interactive)
(kill-new (concat "org-protocol://id?id=" (org-id-get-create)))
)

这个函数可以直接拷贝当前 entry 的 uri.