Re: [O] anyway to create link to a line number in a file
On Mon, Feb 20, 2012 at 12:58 AM, Nick Dokos nicholas.do...@hp.com wrote: Not To Miss not.to.m...@gmail.com wrote: Thanks, Nick! It works, though it works only to the specified file(s) by overruling the original org-store-link-functions. Yes, org marches down the link handlers and takes the first positive response as the answer. You can make the function arbitrarily complicated of course, if you don't like the behavior, but in any case, it will have to say yes (and provide the link in some format) or no - in the latter case, org will continue on with the rest of the functions in the list (and fall back to its default if *no* function says yes). Ideally, it would be great if in the normal stored org link, line number could be included in the link and would be ripped off from the text to search the linked file. I'm confused - what exactly are you asking for here? If you don't use the line number for searching, why would you want to store it? Because I think sometimes the line number gives valuable information in addition to the text. I meant to create a link like [[file:foo.txt::123 whatever_text]], when users open the link, org-mode searches whatever_text; if it doesn't find anything, jump to the line 123. The idea behind that is that it is possible the line is changed and is unsearchable but still remains in the same line number. This, however, is probably an issue of built-in org-mode design, beyond the scope of user customization. Anyway, thanks for your help. Nick On Sat, Feb 18, 2012 at 4:58 PM, Nick Dokos nicholas.do...@hp.com wrote: Nick Dokos nicholas.do...@hp.com wrote: Not To Miss not.to.m...@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.ohal...@gmail.com wrote: On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss not.to.m...@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 -- Best, Zhenjiang -- Best, Zhenjiang
Re: [O] anyway to create link to a line number in a file
Not To Miss not.to.m...@gmail.com wrote: Ideally, it would be great if in the normal stored org link, line number could be included in the link and would be ripped off from the text to search the linked file. I'm confused - what exactly are you asking for here? If you don't use the line number for searching, why would you want to store it? Because I think sometimes the line number gives valuable information in addition to the text. I meant to create a link like [[file:foo.txt::123 whatever_text]], when users open the link, org-mode searches whatever_text; if it doesn't find anything, jump to the line 123. The idea behind that is that it is possible the line is changed and is unsearchable but still remains in the same line number. I guess the main idea is that it is more likely for the text around the link to remain the same: the line number can change (e.g. if you add stuff at the beginning of the file), but the surrounding text will probably remain the same, so a context search is more likely to find you what you want. But you are right in that a line number can sometimes disambiguate things, e.g. the etags functionality in emacs works (worked? not sure if the implementation is still the same) by using a position to go to and then searching in ever-widening circles around that position in order to find the appropriate context. That way, identical contexts could be used (a necessity for etags) and still be distinguished from each other. This, however, is probably an issue of built-in org-mode design, beyond the scope of user customization. Yup. Nick
Re: [O] anyway to create link to a line number in a file
Thanks, Nick! It works, though it works only to the specified file(s) by overruling the original org-store-link-functions. Ideally, it would be great if in the normal stored org link, line number could be included in the link and would be ripped off from the text to search the linked file. On Sat, Feb 18, 2012 at 4:58 PM, Nick Dokos nicholas.do...@hp.com wrote: Nick Dokos nicholas.do...@hp.com wrote: Not To Miss not.to.m...@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.ohal...@gmail.com wrote: On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss not.to.m...@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 -- Best, Zhenjiang
Re: [O] anyway to create link to a line number in a file
Not To Miss not.to.m...@gmail.com wrote: Thanks, Nick! It works, though it works only to the specified file(s) by overruling the original org-store-link-functions. Yes, org marches down the link handlers and takes the first positive response as the answer. You can make the function arbitrarily complicated of course, if you don't like the behavior, but in any case, it will have to say yes (and provide the link in some format) or no - in the latter case, org will continue on with the rest of the functions in the list (and fall back to its default if *no* function says yes). Ideally, it would be great if in the normal stored org link, line number could be included in the link and would be ripped off from the text to search the linked file. I'm confused - what exactly are you asking for here? If you don't use the line number for searching, why would you want to store it? Nick On Sat, Feb 18, 2012 at 4:58 PM, Nick Dokos nicholas.do...@hp.com wrote: Nick Dokos nicholas.do...@hp.com wrote: Not To Miss not.to.m...@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.ohal...@gmail.com wrote: On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss not.to.m...@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 -- Best, Zhenjiang
Re: [O] anyway to create link to a line number in a file
On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss not.to.m...@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
Re: [O] anyway to create link to a line number in a file
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.ohal...@gmail.com wrote: On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss not.to.m...@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 -- Best, Zhenjiang
Re: [O] anyway to create link to a line number in a file
Not To Miss not.to.m...@gmail.com writes: 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. [[file:filename.txt::6]] jumps to line 6 of filename.txt for me. I don't know if this is documented... if not a documentation patch would be appreciated. Best, On Sat, Feb 18, 2012 at 9:03 AM, Sean O'Halpin sean.ohal...@gmail.com wrote: On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss not.to.m...@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 -- Eric Schulte http://cs.unm.edu/~eschulte/
Re: [O] anyway to create link to a line number in a file
Sorry, I didn't make it more clear. I want to create a link to a specific line automatically, just as the command C-c l (org-store-link) to automatically create a link to the text of current line. Sometimes line number is more important for me to record. On Sat, Feb 18, 2012 at 12:11 PM, Eric Schulte eric.schu...@gmx.com wrote: Not To Miss not.to.m...@gmail.com writes: 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. [[file:filename.txt::6]] jumps to line 6 of filename.txt for me. I don't know if this is documented... if not a documentation patch would be appreciated. Best, On Sat, Feb 18, 2012 at 9:03 AM, Sean O'Halpin sean.ohal...@gmail.com wrote: On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss not.to.m...@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 -- Eric Schulte http://cs.unm.edu/~eschulte/ -- Best, Zhenjiang
Re: [O] anyway to create link to a line number in a file
Not To Miss not.to.m...@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.ohal...@gmail.com wrote: On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss not.to.m...@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 *Following* a link with a line number is no problem: org does that out of the box with a link like [[file:foo.txt::NNN][desc]] That is actually documented: (info (org) External links) 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. Nick
Re: [O] anyway to create link to a line number in a file
Nick Dokos nicholas.do...@hp.com wrote: Not To Miss not.to.m...@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.ohal...@gmail.com wrote: On Fri, Feb 17, 2012 at 4:54 PM, Not To Miss not.to.m...@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
[O] anyway to create link to a line number in a file
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 -- Best, Zane