org-id

Org-id makes GUIDs

Org-id is part of Org mode.

Org can link to headings in several ways. Textmind relies on org-id's GUIDs (Globally Unique IDentifiers) to anchor links. This allows Org to find headings even when their path, contents and title have changed.

With lots of text, Org link search can be slow. However, running a search caches all UID paths. If the cached path is still correct, opening the link is instant.

To keep the cache updated, run a GUID link search every night before bed. That way, if a GUID link doesn't open immediately, you'll know you moved the GUID today. Maybe you remember where you put it. Or maybe you deleted the target a while ago, which a grep search can quickly confirm.

Worst case, you wait for a full GUID link search to complete. My Textmind is 1/3 gb, and I think this search takes 10 minutes, certainly under 30, on a 3.4 GHz Quad-Core Intel Core i5 iMac 2017.

If impatient, grep for the GUID. It's faster than updating the whole GUID cache. Both a target heading and links to it contain the GUID. However, only the anchor prefixes the GUID with :ID: followed by seven spaces. So search for that.

To update the GUID link cache, search for a GUID that doesn't exist. For example, open this link:

[[ id:fake ][ fake link ]]

Let the search run until complete. It will lock Emacs while running.