Re: [O] a new way to navigate your org files

2011-08-28 Thread Stelian Iancu

On 08/27/2011 09:26 AM, Nathan Neff wrote:

I just found this and it's great -- thanks!

On Mon, Apr 25, 2011 at 2:25 PM, Tomadatgyu...@gmail.com  wrote:
   

Suvayu Alifatkasuvayu+linuxat  gmail.com  writes:
 

This is very useful. I made some enhancements in the attached patches.
The first one adds a very basic minibuffer history. You can navigate the
history by the usual `M-p' and `M-n'. The second patch fixes an issue,
now you can go to the first match by just hitting `RET' instead of
`down  RET'.

   

I added your changes to the code (implementing the second one slightly
differently, but it works the same way).

I also turned on full cursor for the Occur buffer, instead of the hollow
one, so it can be seen more easily.

The code is on EmacsWiki for easier downloed:

http://www.emacswiki.org/emacs/org-occur-goto.el

 

Sorry for the stupid question, but how do I enable this?

Thanks!

S.



Re: [O] a new way to navigate your org files

2011-08-28 Thread suvayu ali
On Sun, Aug 28, 2011 at 10:44 AM, Stelian Iancu stelian.ia...@gmail.com wrote:
 The code is on EmacsWiki for easier downloed:

 http://www.emacswiki.org/emacs/org-occur-goto.el



 Sorry for the stupid question, but how do I enable this?


Something like this in your `org-mode-hook' maybe?

;; keybinding for oog (`org-occur-goto') for quick navigation
(org-defkey org-mode-map (kbd C-c g) 'oog)

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] a new way to navigate your org files

2011-08-27 Thread Nathan Neff
I just found this and it's great -- thanks!

On Mon, Apr 25, 2011 at 2:25 PM, Tom adatgyu...@gmail.com wrote:
 Suvayu Ali fatkasuvayu+linux at gmail.com writes:

 This is very useful. I made some enhancements in the attached patches.
 The first one adds a very basic minibuffer history. You can navigate the
 history by the usual `M-p' and `M-n'. The second patch fixes an issue,
 now you can go to the first match by just hitting `RET' instead of
 `down RET'.


 I added your changes to the code (implementing the second one slightly
 differently, but it works the same way).

 I also turned on full cursor for the Occur buffer, instead of the hollow
 one, so it can be seen more easily.

 The code is on EmacsWiki for easier downloed:

 http://www.emacswiki.org/emacs/org-occur-goto.el







Re: [O] a new way to navigate your org files

2011-04-25 Thread Tom
Suvayu Ali fatkasuvayu+linux at gmail.com writes:
 
 This is very useful. I made some enhancements in the attached patches.
 The first one adds a very basic minibuffer history. You can navigate the
 history by the usual `M-p' and `M-n'. The second patch fixes an issue,
 now you can go to the first match by just hitting `RET' instead of
 `down RET'.
 

I added your changes to the code (implementing the second one slightly
differently, but it works the same way).

I also turned on full cursor for the Occur buffer, instead of the hollow
one, so it can be seen more easily.

The code is on EmacsWiki for easier downloed:

http://www.emacswiki.org/emacs/org-occur-goto.el





[O] a new way to navigate your org files

2011-04-24 Thread Tom
I use org goto to jump quckly to headings, but the other day
I forgot the name of the heading, but I remembered its contents.
I thought it could be useful if I could navigate org files by content
too, so I quickly created this package as a sunday afternoon fun.

It is a wrapper around the multi-occur interface, so you can
simply type your search pattern and the occur results from your org
buffers are updated dynamically as you type.

Here it is:

;;; org-occur-goto.el -- search open org buffers with an occur interface

;;; Usage: M-x oog, then start typing
;;; 
;;; select from the occur matches with up/down/pgup/pgdown and press enter
;;; 
;;; the search string must be at least 3 characters long (by default)
;;;


(require 'cl)

(defvar oog-idle-delay 0.5)

(defvar oog-minimum-input-length 3)


(defvar oog-map 
  (let ((map (copy-keymap minibuffer-local-map)))
(define-key map (kbd down) 'oog-next-line)
(define-key map (kbd up) 'oog-previous-line)
(define-key map (kbd prior) 'oog-previous-page)
(define-key map (kbd next) 'oog-next-page)
   map))



(defun oog-previous-line ()
  (interactive)
  (oog-move-selection 'next-line -1))
 
 
(defun oog-next-line ()
  (interactive)
  (oog-move-selection 'next-line 1))
 
 
(defun oog-previous-page ()
  (interactive)
  (oog-move-selection 'scroll-down nil))
 
 
(defun oog-next-page ()
  (interactive)
  (oog-move-selection 'scroll-up nil))
 
 
(defun oog-move-selection (movefunc movearg)
  (let ((win (get-buffer-window *Occur*)))
(if win
(with-selected-window win
  (condition-case nil
  (funcall movefunc movearg)
(beginning-of-buffer (goto-char (point-min)))
(end-of-buffer (goto-char (point-max


(defun oog-check-input ()
  (when (sit-for oog-idle-delay)
(unless (equal (minibuffer-contents) oog-current-input)
  (setq oog-current-input (minibuffer-contents))

  (if ( (length oog-current-input) oog-minimum-input-length)
  (let ((win (get-buffer-window *Occur*)))
(if win
  (with-selected-window win
(setq buffer-read-only nil)
(erase-buffer

(save-excursion
  (flet ((message (rest args) nil))  ;; suppress occur messages
(multi-occur
 (remove nil (mapcar (lambda (buffer)
   (with-current-buffer buffer
 (if (eq major-mode 'org-mode)
 buffer)))
 (buffer-list)))
 oog-current-input))
  (unless (get-buffer *Occur*)
(message No matches.)))



(defun oog ()
  (interactive)
  (let (marker)
(save-window-excursion
  (add-hook 'post-command-hook 'oog-check-input)
  (setq oog-current-input nil)

  (unwind-protect
  (let ((minibuffer-local-map oog-map))
(read-string string: ))
 
(remove-hook 'post-command-hook 'oog-check-input))

  (let ((buf (get-buffer *Occur*)))
(if buf
(with-current-buffer buf
  (unless (= (buffer-size) 0)
(setq marker (occur-mode-find-occurrence)))

(switch-to-buffer (marker-buffer marker))
(goto-char marker)
(when (outline-invisible-p)
  (save-excursion
(outline-previous-visible-heading 1)
(org-show-subtree)






Re: [O] a new way to navigate your org files

2011-04-24 Thread Matt Lundin
Tom adatgyu...@gmail.com writes:

 I use org goto to jump quckly to headings, but the other day
 I forgot the name of the heading, but I remembered its contents.
 I thought it could be useful if I could navigate org files by content
 too, so I quickly created this package as a sunday afternoon fun.

 It is a wrapper around the multi-occur interface, so you can
 simply type your search pattern and the occur results from your org
 buffers are updated dynamically as you type.

This is great! Thanks for sharing.

Best,
Matt




Re: [O] a new way to navigate your org files

2011-04-24 Thread Suvayu Ali
Hi Tom,

On Sun, 24 Apr 2011 16:06:05 + (UTC)
Tom adatgyu...@gmail.com wrote:

 I use org goto to jump quckly to headings, but the other day
 I forgot the name of the heading, but I remembered its contents.
 I thought it could be useful if I could navigate org files by content
 too, so I quickly created this package as a sunday afternoon fun.
 
 It is a wrapper around the multi-occur interface, so you can
 simply type your search pattern and the occur results from your org
 buffers are updated dynamically as you type.

This is very useful. I made some enhancements in the attached patches.
The first one adds a very basic minibuffer history. You can navigate the
history by the usual `M-p' and `M-n'. The second patch fixes an issue,
now you can go to the first match by just hitting `RET' instead of
`down RET'.

Thanks a lot for writing this. :)

-- 
Suvayu

Open source is the future. It sets us free.
From 08c35bcf7cc3b290f8421236c4bc5e3345398ff0 Mon Sep 17 00:00:00 2001
From: Suvayu Ali fatkasuvayu+li...@gmail.com
Date: Sun, 24 Apr 2011 12:20:27 -0700
Subject: [PATCH 1/2] Add minibuffer history to org-occur-goto

---
 lisp/org-occur-goto.el |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lisp/org-occur-goto.el b/lisp/org-occur-goto.el
index e2af3fb..ccef330 100644
--- a/lisp/org-occur-goto.el
+++ b/lisp/org-occur-goto.el
@@ -90,7 +90,7 @@
 
  (unwind-protect
  (let ((minibuffer-local-map oog-map))
-   (read-string string: ))
+   (read-string string:  nil 'oog-history-list))
 
(remove-hook 'post-command-hook 'oog-check-input))
 
-- 
1.7.3.4

From 1742551e8e19abaa272e444fa8c27afd76a7e6b8 Mon Sep 17 00:00:00 2001
From: Suvayu Ali fatkasuvayu+li...@gmail.com
Date: Sun, 24 Apr 2011 13:10:19 -0700
Subject: [PATCH 2/2] oog: can got to first match by hitting RET

---
 lisp/org-occur-goto.el |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/lisp/org-occur-goto.el b/lisp/org-occur-goto.el
index ccef330..7398daf 100644
--- a/lisp/org-occur-goto.el
+++ b/lisp/org-occur-goto.el
@@ -98,7 +98,10 @@
(if buf
(with-current-buffer buf
  (unless (= (buffer-size) 0)
-   (setq marker (occur-mode-find-occurrence)))
+   (setq marker (if (eq (line-number-at-pos (point)) 1)
+(progn (forward-line)
+   (occur-mode-find-occurrence))
+			  (occur-mode-find-occurrence
 
(switch-to-buffer (marker-buffer marker))
(goto-char marker)
-- 
1.7.3.4