emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Speed commands


From: Carsten Dominik
Subject: Re: [Orgmode] Speed commands
Date: Sun, 15 Nov 2009 14:27:03 +0100

Hi Dan, these are nice, but somehow I find the "n" command logical and the "p" command confusing :-)

- Carsten

On Nov 15, 2009, at 3:44 AM, Dan Davison wrote:

Dan Davison <address@hidden> writes:

Carsten Dominik <address@hidden> writes:

<...>
I am happy to have a discussion what additional
commands should be present by default.

I thought a speed command for scrolling through an org document might be
good -- move from heading to heading, displaying the next entry while
keeping all others hidden, and close subtrees as you leave them.

Here are simplified versions of the forward- and backward-scroll speed
commands that I'm suggesting.

---------------------------------------------------------
(defun ded/org-show-next-heading-tidily ()
 "Show next entry, keeping other entries closed."
 (if (save-excursion (end-of-line) (outline-invisible-p))
     (progn (org-show-entry) (show-children))
   (outline-next-heading)
   (unless (and (bolp) (org-on-heading-p))
     (org-up-heading-safe)
     (hide-subtree)
     (error "Boundary reached"))
   (org-overview)
   (org-reveal t)
   (org-show-entry)
   (show-children)))

(defun ded/org-show-previous-heading-tidily ()
 "Show previous entry, keeping other entries closed."
 (let ((pos (point)))
   (outline-previous-heading)
   (unless (and (< (point) pos) (bolp) (org-on-heading-p))
     (goto-char pos)
     (hide-subtree)
     (error "Boundary reached"))
   (org-overview)
   (org-reveal t)
   (org-show-entry)
   (show-children)))

(setq org-use-speed-commands t)
(add-to-list 'org-speed-commands-user
            '("n" ded/org-show-next-heading-tidily))
(add-to-list 'org-speed-commands-user
            '("p" ded/org-show-previous-heading-tidily))
---------------------------------------------------------

Dan

Or is
there already an org command that does something like this?


(Try starting with everything closed.)

--------------------------------------------------------------
(defun ded/org-show-next-heading-tidily ()
 "Show next entry, keeping other entries closed."
 (if (save-excursion (end-of-line) (outline-invisible-p))
     (org-cycle)
   (let ((level (org-current-level)))
     (unless (org-heading-has-child-p) (org-cycle))
     (outline-next-heading)
     (if (< (org-current-level) level)
         (save-excursion
           (outline-backward-same-level 1)
           (org-cycle)))
     (if (and (bolp) (org-on-heading-p))
         (org-cycle)
       (outline-up-heading 1 t)
       (org-cycle)
       (error "Boundary reached")))))

(setq org-use-speed-commands t)
(add-to-list 'org-speed-commands-user
            '("s" ded/org-show-next-heading-tidily))
--------------------------------------------------------------

(<space> might be quite natural for this one, it seems to get used for
scrolling e.g. in dired and gnus)

Dan



- Carsten


_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten







reply via email to

[Prev in Thread] Current Thread [Next in Thread]