列出org-mode中标题的所有入站链接

8

假设我有一个包含标题和标题链接的org-mode文件(链接在文件中),是否有办法在缓冲区中列出所有指向当前标题的入站链接,当我按Enter键或单击其中一项时,它会跳转到链接?

示例:

* Header 1
  Contents of header 1.
* Header 2
  [[Header 1][Link 1]]
* Header 3
  [[Header 1][Link 2]]

当我在标题1中时,我希望在缓冲区中显示文件中所有链接到标题1(即“Link 1”和“Link 2”)的列表;当我点击或按Enter键“Link 2”行时,它跳转到位于标题3中的Link 2。
1个回答

6

您可以使用occur通过搜索[[Header Name][来查找链接,并在occur-mode缓冲区中显示匹配的行。以下是一个自动化此过程的函数(使用org-heading-components获取当前标题名称):

(defun my/get-links-to-current-heading ()
  (interactive)
  (let ((title (nth 4 (org-heading-components))))
    (occur (concat "\\[\\[" title "\\]\\["))))

使用org-occur而不是occur,将会在当前的org缓冲区中以稀疏树的形式呈现匹配项列表。

这仅适用于标题中的ASCII字符,要扩展为非ASCII字符,可以使用url-hexify-string函数,例如(concat "\\[\\[\\*" title "\\|" (url-hexify-string title) "\\]\\[")。这也将允许在其他文件中搜索链接,因为在将链接放入其他文件时,空格会被URL编码。 - zeliboba7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接