emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: John Hendy <jw.hendy@gmail.com>
To: Brian van den Broek <brian.van.den.broek@gmail.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: internal links not being followed; instead, offer to create new heading
Date: Sun, 10 Feb 2013 16:38:24 -0600	[thread overview]
Message-ID: <CA+M2ft_A+nVhXxLPx=zM7XiEmsjjcU16gpX7JVa87PhjQCd05g@mail.gmail.com> (raw)
In-Reply-To: <CAF6Daj+9wd2n0HdrRUsvr2BdJT9Or+5YJrNrz2VQqetGWHcyfA@mail.gmail.com>

On Sun, Feb 10, 2013 at 4:28 PM, Brian van den Broek
<brian.van.den.broek@gmail.com> wrote:
> On 10 February 2013 16:21, John Hendy <jw.hendy@gmail.com> wrote:
>> On Sun, Feb 10, 2013 at 12:53 PM, Brian van den Broek
>> <brian.van.den.broek@gmail.com> 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 <carsten.dominik@gmail.com>
> 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

      reply	other threads:[~2013-02-10 22:38 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-10 18:53 internal links not being followed; instead, offer to create new heading Brian van den Broek
2013-02-10 21:21 ` John Hendy
2013-02-10 22:28   ` Brian van den Broek
2013-02-10 22:38     ` John Hendy [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CA+M2ft_A+nVhXxLPx=zM7XiEmsjjcU16gpX7JVa87PhjQCd05g@mail.gmail.com' \
    --to=jw.hendy@gmail.com \
    --cc=brian.van.den.broek@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).