emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nick Dokos <nicholas.dokos@hp.com>
To: Not To Miss <not.to.miss@gmail.com>
Cc: nicholas.dokos@hp.com, emacs-orgmode@gnu.org
Subject: Re: anyway to create link to a line number in a file
Date: Sat, 18 Feb 2012 16:58:05 -0500	[thread overview]
Message-ID: <4472.1329602285@alphaville> (raw)
In-Reply-To: Message from Nick Dokos <nicholas.dokos@hp.com> of "Sat, 18 Feb 2012 12:31:27 EST." <9088.1329586287@alphaville>

Nick Dokos <nicholas.dokos@hp.com> wrote:

> Not To Miss <not.to.miss@gmail.com> wrote:
> 
> > I looked that section carefully and the whole manual briefly. I
> > haven't found anything yet. That's why I am asking on the mailing list
> > to see if anyone has some workaround.
> > 
> > On Sat, Feb 18, 2012 at 9:03 AM, Sean O'Halpin <sean.ohalpin@gmail.com> wrote:
> > > On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss <not.to.miss@gmail.com> wrote:
> > >> Hi all,
> > >>
> > >> I am reading a long text file and want to write down my notes with
> > >> org-mode. I extremely would like to put the line numbers down along
> > >> with my notes. Although there is a way to store a link for text search
> > >> for the current line, I haven't found a way to create a link to a line
> > >> number in the current buffer. Is there anyway to do that? Thanks
> > >
> > > Take a look at org-capture: http://orgmode.org/manual/Capture.html
> 

> The problem is to make sure org-store-link will actually store the line
> number (along with everything else) so that then org-insert-link can
> insert the link in the proper format. I don't think there is a function
> to do that out of the box for line numbers, but you can easily (for some
> value of "easily") write your own. Look in
> 
> (info "(org)Adding hyperlink types")
> 
> for some hints. Briefly, you write a function that checks whether it
> wants to deal with the link or not, and you add it to
> org-store-link-functions. I don't have the time to try it out right now,
> but I believe this should work for what you want.
> 

Following up on this, the following seems to work, although you probably
want to tweak the criterion of when you want *this* function to take
care of links - this particular implementation only applies the line
number treatment to links generated in the file named
"/path/to/the.file.txt" and only that file:

--8<---------------cut here---------------start------------->8---
(defun org-file-lineno-store-link()
  (when (string-equal (buffer-file-name) "/path/to/the.file.txt")
    (let* ((link (format "file:%s::%d" (buffer-file-name) (line-number-at-pos))))
      (org-store-link-props
       :type "file"
       :link link))))

(add-hook 'org-store-link-functions 'org-file-lineno-store-link)
--8<---------------cut here---------------end--------------->8---

Nick

  reply	other threads:[~2012-02-18 21:58 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-17 16:54 anyway to create link to a line number in a file Not To Miss
2012-02-18 14:03 ` Sean O'Halpin
2012-02-18 16:31   ` Not To Miss
2012-02-18 17:11     ` Eric Schulte
2012-02-18 17:30       ` Not To Miss
2012-02-18 17:31     ` Nick Dokos
2012-02-18 21:58       ` Nick Dokos [this message]
2012-02-20  4:43         ` Not To Miss
2012-02-20  5:58           ` Nick Dokos
2012-02-21 17:16             ` Not To Miss
2012-02-21 17:29               ` Nick Dokos

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=4472.1329602285@alphaville \
    --to=nicholas.dokos@hp.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=not.to.miss@gmail.com \
    /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).