[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] internal links not being followed; instead, offer to create new
From: |
John Hendy |
Subject: |
Re: [O] internal links not being followed; instead, offer to create new heading |
Date: |
Sun, 10 Feb 2013 16:38:24 -0600 |
On Sun, Feb 10, 2013 at 4:28 PM, Brian van den Broek
<address@hidden> wrote:
> On 10 February 2013 16:21, John Hendy <address@hidden> wrote:
>> On Sun, Feb 10, 2013 at 12:53 PM, Brian van den Broek
>> <address@hidden> wrote:
>>> Hi all,
>>>
>>> I am having trouble with following internal org links. After carefully
>>> reading the documentation (especially 4.2 Internal Links
>>> <http://orgmode.org/org.html#Internal-links>) with the following
>>> test.org file, I would expect that C-c C-o on the link text in the bar
>>> tree would jump to the corresponding text in the foo tree.
>>
>> I'd never heard of being able to do this, so I read the documentation
>> as well and this how I parsed it:
>>
>> - Is link text a URL?
>> - If yes -> open url
>> - If no, check current file
>>
>> - Is link text a custom ID?
>> - If yes -> go to headline with matching ID
>> - If no, check for custom target
>>
>> - Is there a match between [[link text]] and an occurrence of <<link
>> text>> (dedicated target)?
>> - If yes -> go to the dedicated target location
>> - If no, check file type
>>
>> - Is this a .org file?
>> - If yes, check for a *headline* (or possibly keywords/tags)
>> matching the [[link text]] [1]
>> - If no, conduct a string search for the [[link text]]
>>
>> [1] Quote: "If no dedicated target exists, Org will search for a
>> headline that is exactly the link text but may also include a TODO
>> keyword and tags"
>
> <snip>
>
>> 1) The documentation is incorrect (maybe), or
>> 2) I don't know how to do C-c C-o provided by Org in a non-org file
>> correctly (more probable)
>>
>
> <snip>
>
>
> Hi John,
>
> Thanks for the reply.
>
> This prodded me to investigate more thoroughly (and to learn how to
> use git bisect). I had observed that org 6.33 behaved as I expected
> from looking at the documentation.
>
> Bisecting led to:
>
> commit a84c8a2cba8c510acfa0c14487f6c993f664a406
> Author: Carsten Dominik <address@hidden>
> Date: Fri Aug 6 08:34:33 2010 +0200
>
> Make internal links in Org files search for an exact headline match
>
> * lisp/org.el (org-link-search-must-match-exact-headline): New option.
> (org-link-search-inhibit-query): New variable.
> (org-link-search): Search for exact headline match in Org files
> * doc/org.texi (Internal links): Document the changes in internal links.
>
> Internal links used to do a fuzzy text search for the link text. This
> patch changes the behavior for Org files. Here a link [[My Target]]
> now searches for an exact headline match, i.e. for a headline that
> does look like "* My Target", optionally with TODO keyword, priority
> cookie and tags.
>
> The new option `org-link-search-must-match-exact-headline' is
> `query-to-create' by default. This means that a failed link search
> will offer to create the headline as a top-level headline at the end
> of the buffer. This corresponds to a wiki-like behavior where missing
> targets are automatically created. If you do not like this behavior,
> change the option to t.
>
>
> The commit alters the docs, evidently intending them to be read as you
> (John) read them. I'd argue that this wasn't entirely pulled off, as
> the passage "Links such as ‘[[My Target]]’ or ‘[[My Target][Find my
> target]]’ lead to a text search in the current file" combined with my
> memory of how org used to work gave me a different expectation.
>
Nice digging! I saw that as well... one interpretation could be that
it should fall back to a full text search of the document. Another
interpretation is that if it's not a URL it falls back to a "text
search" in which "text" = a unique ID, dedicated <<target>> or
headline. Definitely not clear, though.
> At any rate, to my cursory testing,
>
> (setq org-link-search-must-match-exact-headline nil)
>
> in my .emacs appears to make org behave as I expect it to.
Awesome, and at the end of the day, having the functionality you *are*
looking for is what really matters. Glad you found that variable!
John
>
> Thanks and best,
>
> Brian vdB