如何自定义org-mode链接(你可以通过org-mode链接做任何事情)
Table of Contents
org-mode 有一个鲜为人知的功能,那就是你可以用org-add-link-type 来自定义新的链接类型. 你可以用它来做很多事, 比如, 可以创建一种链接,点击这种链接就会在整个代码库中搜索指定的正则表达式.
(org-add-link-type "grep" 'endless/follow-grep-link) (defun endless/follow-grep-link (regexp) "Run `rgrep' with REGEXP as argument." (grep-compute-defaults) (rgrep regexp "*" (expand-file-name "./")))
这样, 当你在org-mode下点击类似下面的链接时,你会看到一个搜索结果的列表.
** TODO Refactor OldClassName into NewClassName
1 LINK header arguments
正如 /u/blue1_ 中所指出的, 若你新创建的链接仅仅是对URL做一些替换操作,那你还可以用 #+LINK headers
来实现.
#+LINK: isbn http://www.amazon.com/dp/%s
2 Tag Searches
让我们来看看另一个使用场景, 下面代码定义了一种链接,它会搜索你的标题来查找特定的tags.
(org-add-link-type "tag" 'endless/follow-tag-link) (defun endless/follow-tag-link (tag) "Display a list of TODO headlines with tag TAG. With prefix argument, also display headlines without a TODO keyword." (org-tags-view (null current-prefix-arg) tag))
然后你可以这一条这样的链接了
其中搜索的语法可以参见 这里, 与 org-tags-view 命令中的用法一样.