Re: [O] a new way to navigate your org files
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
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
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
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
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
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
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