如何在 org-mode 中使用更简单的链接语法?

6
我希望使用语法为[[foo bar]]的链接指向名为foo bar.org的文件。这将使使用org-mode更像使用个人本地维基百科。是否可以在不破坏现有链接功能的情况下实现此目标?最理想的情况是我仍然能够使用标准的org-mode工具导出到html等格式中。我所能做的最好的事情是类似于:(setq org-link-abbrev-alist '(("o" . "file:%s.org"))),这样我就可以使用语法[[o:foo bar]],但这种方式更冗长,在内联中看起来很丑。例如:The quick brown o:fox jumps over the o:lazy_dog。而[[o:foo bar][foo bar]]更加冗长,难以编辑(尽管在org mode中读起来还不错)。

请在邮件列表上提出:http://news.gmane.org/gmane.emacs.orgmode - Tom
如果您将此帖子发布到邮件列表中,能否在此处放置线程链接? - Dror
邮件列表的答复:http://lists.gnu.org/archive/html/emacs-orgmode/2014-02/msg00528.html - mkm
邮件列表回复建议使用代码片段来使现有过程更容易。但这似乎是通往真正解决方案的途径:https://dev59.com/xV8d5IYBdhLWcg3wkS7Y#26672609 - avv
一个内置的 [[o:foo bar]] 的替代方案是:[[./foo bar]],它不需要 setq,但限制在当前目录,并包括非 .org 文件,但适用于所有(且仅)wiki .org 文件都在一个平面目录中的个人 wiki 样式;此外,我认为它比 'o:' 更美观,仍然可以与文件内链接区分开来。 - TNT
1个回答

2
我没有现成的解决方案,也不是程序员,但这部分在“org.el”中是自我记录的,您可以编写一个专门的链接搜索函数。我引用:
“执行文件搜索的函数列表,由链接触发。
添加到此钩子的函数必须接受单个参数,即文件链接的一部分搜索字符串,双冒号之后的部分。该函数必须首先检查它是否想要处理此搜索,例如通过检查'major-mode'或文件扩展名。如果它决定不处理此搜索,则应返回nil以给其他函数一个机会。如果它确实处理了搜索,则必须返回非零值以防止其他函数尝试。
每个函数都可以通过变量'current-prefix-arg'访问当前前缀参数。请注意,单个前缀用于强制在Emacs中打开链接,因此最好仅使用数字或双重前缀来指导搜索功能。
如果需要,在此钩子中的函数还可以使用以下方式恢复在调用'org-open-at-point'之前的窗口配置:
(set-window-configuration org-window-config-before-follow-link)")
另请参见超链接:: GNU.org上的自定义搜索

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