重构 org 文件(在不破坏链接的情况下移动数据)?
Refactoring org files (moving data without breaking links)?
我正在寻找某种工作流程,让我可以在不破坏 links 的情况下自由移动东西。
因为我几乎总是使用 org-store-link
或 org-capture
到 link,所以我正在考虑这样的工作流程:
任何时候从 org 文件中调用 org-store-link
或 org-capture
,将 link 的确切副本插入 stored/captured 到当前文件中标题的属性。当然,我可能只有一个包装函数来执行插入,然后调用相应的 org
函数
在每次保存时,在当前文件中搜索与其当前位置不匹配的任何此类标识符。文件移动也会中断 links,因此脚本可能应该 运行 定期在所有组织文件上 - 也许在 emacs start-up.
如果找到任何 non-matches,则搜索指向旧标识符的后link,用新位置更新那些link ,然后将标识符本身更新到新位置。
一个辅助函数可以找到所有带有 org-links 但没有标识符的标题,这将帮助我为系统准备好我当前的组织文件。
在我开始之前,这听起来是不是个好主意,如何改进它,是否有人已经这样做了?
org-mode
有一个选项可以为每个条目分配一个唯一的 ID 并在链接中使用它。这使链接即使在移动目标时也能继续工作。将变量 org-id-link-to-org-use-id
设置为 t
,id 将被创建并存储在 ID
属性 中。 org-insert-link
将插入 id:<id>
.
的链接
我正在寻找某种工作流程,让我可以在不破坏 links 的情况下自由移动东西。
因为我几乎总是使用 org-store-link
或 org-capture
到 link,所以我正在考虑这样的工作流程:
任何时候从 org 文件中调用
org-store-link
或org-capture
,将 link 的确切副本插入 stored/captured 到当前文件中标题的属性。当然,我可能只有一个包装函数来执行插入,然后调用相应的org
函数在每次保存时,在当前文件中搜索与其当前位置不匹配的任何此类标识符。文件移动也会中断 links,因此脚本可能应该 运行 定期在所有组织文件上 - 也许在 emacs start-up.
如果找到任何 non-matches,则搜索指向旧标识符的后link,用新位置更新那些link ,然后将标识符本身更新到新位置。
一个辅助函数可以找到所有带有 org-links 但没有标识符的标题,这将帮助我为系统准备好我当前的组织文件。
在我开始之前,这听起来是不是个好主意,如何改进它,是否有人已经这样做了?
org-mode
有一个选项可以为每个条目分配一个唯一的 ID 并在链接中使用它。这使链接即使在移动目标时也能继续工作。将变量 org-id-link-to-org-use-id
设置为 t
,id 将被创建并存储在 ID
属性 中。 org-insert-link
将插入 id:<id>
.