2016-02-05 51 views
0

我正在寻找某种工作流程,可以让我自由移动,而不会中断链接。重构组织文件(在不中断链接的情况下移动数据)?

因为我几乎总是使用org-store-linkorg-capture链接到任何东西,我考虑像这样的工作流程:

  1. 任何时间org-store-linkorg-capture是从组织文件调用,插入的副本确切的链接被存储/捕获到当前标题的属性中。当然,我可能只是有一个包装功能,插入,然后调用相应的org函数

  2. 在每次保存时,搜索当前文件的任何这样的标识符不符合他们的确切当前位置。文件移动也会中断链接,因此脚本可能应该定期在所有组织文件上运行 - 也许在emacs启动时运行。

  3. 如果发现任何不匹配,则搜索指向旧标识符的反向链接,使用新位置更新这些反向链接,然后将标识符自身更新到新位置。

,用于查找与组织链接到他们所有标题,但没有一个标识符,就帮我拿我目前的组织文件准备好系统中的辅助功能。

在我开始之前,这听起来像是一个好主意,它是如何改进的,还有其他人已经完成了它?

回答

0

org-mode可以为每个条目分配一个唯一的ID并在链接中使用该ID。这使得链接即使在目标被移动时也能继续工作。将变量org-id-link-to-org-use-id设置为t,该ID将被创建并存储在ID属性中。 org-insert-link将插入id:<id>的链接。

+0

谢谢。这将使我获得我所追求的大部分方式。 'org-id-get-create'也会有帮助。 – user66378

+0

我发现了一些奇怪的东西。在调用'org-id-get-create'一次后,任何时候使用org-store-link或org-capture都会自动调用org-id-get-create。这正是我想要的功能,但我不明白为什么我必须在第一时间手动调用它。 有谁知道吗? – user66378

+0

这是因为默认情况下'org-id-link-to-org-use-id'是'nil'。一旦你在缓冲区中激活了标识符,不依赖它就没有意义了。 – bzg

相关问题