【发布时间】:2020-06-13 18:18:57
【问题描述】:
有没有办法根据原始标题自动重命名链接?
例子:
* Headline 1
:PROPERTIES:
:ID: some_id
:END:
* Headline 2
- Headline 1 // this is a link using an id
* Headline 3
- Headline 1 // this is a link using an id
创建新的内部链接时,org 允许您为该链接指定文本。有没有办法根据标题动态更改链接文本?如果我将Headline 1 更改为Headline 4,我希望链接的文本也自动更改为Headline 4。
这可能吗?
【问题讨论】:
-
这是可能的 - 但它可能会慢得令人无法忍受。 每个字符插入之后都会运行一个钩子
post-self-insert-hook。因此,您可以编写一个函数来检查每个链接的 ID 并适当地更改链接描述。但是您只想修改 Org 模式文件的钩子(这并不难)并使函数尽可能快,因为它将在每个字符插入后运行。这个钩子用于例如当您键入结束括号时,使匹配的开始括号闪烁 - 请参阅simple.el中的函数blink-paren-post-self-insert-function。 -
(我对 org 模式还很陌生,所以请原谅任何错误的假设)我也可以接受这样一种情况,即更新不会在每个字符条目上都被动地发生,而是由新的键绑定。例如。 org-update-link-descriptions-in-buffer,然后我们遍历整个缓冲区并进行更新。这意味着链接描述可能会过时一段时间,直到再次触发该功能。我更感兴趣的是“所以你可以编写一个函数来检查每个链接的 ID 并适当地更改链接描述。”可以实现。