From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Moe Subject: Re: idea, in-line preview link Date: Thu, 05 Apr 2012 13:55:09 +0200 Message-ID: <4F7D881D.2050500@christianmoe.com> References: Reply-To: mail@christianmoe.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([208.118.235.92]:57610) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFlGi-0002bw-Kg for emacs-orgmode@gnu.org; Thu, 05 Apr 2012 07:54:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SFlGb-0004Ki-Hp for emacs-orgmode@gnu.org; Thu, 05 Apr 2012 07:54:23 -0400 Received: from b1.hitrost.net ([91.185.211.67]:47385) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFlGb-0004KN-87 for emacs-orgmode@gnu.org; Thu, 05 Apr 2012 07:54:17 -0400 In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Torsten Wagner Cc: Org Mode Mailing List Hi, One of my first Lisp projects was a link type that behaves a bit like what you describe. I don't bother with placing the snippet inline, though, I just flash it as a message in the minibuffer. But I also leave it on the kill ring, so I can C-y it into my current buffer if I like. The following quick and dirty adaptation to your inlinefile idea comes with ABSOLUTELY NO WARRANTY. #+BEGIN_SRC elisp (defun my/org-inlinefile-get (file offset length) "Copy the line at OFFSET and LENGTH extra lines from FILE." (let (beg) (save-excursion (with-temp-buffer (insert-file-contents file) (forward-line (1- offset)) ; Go to beg of range (setq beg (point)) (if length (progn (goto-line (+ offset length)) (kill-region beg (line-end-position))) (kill-line)) (yank))))) (defun my/org-inlinefile-open (path) "Open a link by displaying the lines specified in PATH as a message and making them available for yanking." (let ((parts (split-string (org-no-properties path) "\\(::\\|\\+\\)")) file offset length beg) (setq file (car parts) offset (string-to-number (or (nth 1 parts) "0")) length (string-to-number (or (nth 2 parts) "0"))) (my/org-inlinefile-get file offset length) (message (format "%s\n%s" path (current-kill 0))))) (org-add-link-type "inlinefile" 'my/org-inlinefile-open (lambda (path desc format) desc)) #+END_SRC Yours, Christian On 4/5/12 11:04 AM, Torsten Wagner wrote: > Hi, > > recently I was wondering if org-mode could have some sort of inline > link. This would allow quick check-ups on details without having more > and more buffers open. > That is a link to another text (org-file) including text position like > > [[file:~/code/main.c::255]] > > However instead of open a new buffer and jump to that line, I would > like to see the line +x lines just below the link and possible only > until I move the cursor or by any other means close the link again > > Thus > > [[inlinefile:~/code/main.c::255+4]] > > open it > > [[inlinefile:~/code/main.c::255+4]] > 1. This is all code > 2. from main.c > 3. I can preview in org > 4. without switching the buffer > 5. is that useful?! > > close it again and the buffer looks again like > > [[inlinefile:~/code/main.c::255+4]] > > > Actually, I believe it is fairly easy to implement for people knowing > LISP just a bit better then me ;) > > What do you think > > Totti > >