如何给org-mode里的link加入共享字段?


#1

比如链接

[[file:~/Dropbox/snippets/foo.c]]
[[file:~/Dropbox/snippets/bar.c]]

我需要保存很多类似链接,但~/Dropbox/snippets/有可能变化,有没有办法把它保存为一个变量在所有链接里共享?

[[file:{{snippet-dir}}foo.c]]
[[file:{{snippet-dir}}bar.c]]

将来移动文件只需要该一个变量就可以了?


#2

可以用宏:

#+MACRO: snippet-dir ~/Dropbox/snippets/

[[file:{{{snippet-dir}}}foo.c]]

更新: 我自己试了一下,链接里似乎不支持宏,只好这么写:

#+MACRO: snippet-dir [[file:~/Dropbox/snippets/$1]]

{{{snippet-dir(foo.c)}}}

#3

这种是要导出才可以吧,我日常使用org-mode, 需要链接依然正常工作


#4

还真有:

https://orgmode.org/manual/Link-abbreviations.html#Link-abbreviations

(setq org-link-abbrev-alist '(("snippet-dir" . "file://~/Dropbox/snippets/")))

[[snippet-dir:foo.c]]