emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Using Org for browsing and managing buffers


From: Eric S Fraga
Subject: Re: [Orgmode] Using Org for browsing and managing buffers
Date: Mon, 19 Apr 2010 09:27:12 +0100
User-agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.7 Emacs/23.1 (i486-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

On Sun, 18 Apr 2010 23:47:11 -0400, Dan Davison <address@hidden> wrote:
> 
> Hi Eric,
> 
> Eric S Fraga <address@hidden> writes:
> [...]
> > - I like the fact I can customise RET or, more to the point, that it
> >   be consistent with the rest of org-mode.  I personally would set
> >   org-buffers-follow-link-method to 'current-window but then it would
> >   be nice to have SPC, say, open the buffer in another window, to
> >   behave consistently with org-agenda?
> 
> I've added the SPACE binding you suggest. And, although it would be
> out-of-keeping with other org-mode links, it looks like there's a good
> argument for making RET switch to the buffer in the same window, like
> dired et al. I've done that. I've put a table at the end comparing
> these bindings across a few different major modes.

Very nice summary!  Shows that there is significant inconsistency in
behaviour across typical/popular emacs modes.  Probably too late to
increase that consistency overall but I like the choices you have made
for org-buffers.

> > - what's the point of orb-buffers-toggle-heading? 
> 
> Cleaner (less starry) appearance, seeing as many buffers are named
> *Like This*.

Ah, true!

On this topic, one suggestion (which might be difficult to implement,
however): the best thing is about org is the hierarchical nature of
headlines.  This would seem to map well to the hierarchical nature of
modes.  For instance, org mode is also a text mode.  Would it make
sense to have all text mode buffers grouped with sub-modes (for want
of a better word) as subheadings?  On the other hand, I'm not sure
what this would add so probably ignore this... :-)

> > I ask because I
> >   don't understand what functionality it adds and the default binding
> >   (h) conflicts with my speed keys (I use vi-like bindings for speed
> >   motion keys).
> 
> I overlooked that before. I've moved it to H.

Doesn't seem to work for me (pulled from git this morning, 8am BST):

,----
| Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p nil)
|   delete-region(nil nil)
|   (lambda (pair) (delete-region (car pair) (cdr pair)))(nil)
|   mapc((lambda (pair) (delete-region (car pair) (cdr pair))) (nil nil (4614 . 
4748) nil (4407 . 4572) nil (4204 . 4360) nil (3953 . 4169) (3695 . 3911) (3441 
. 3653) (3193 . 3403) (2947 . 3157) (2693 . 2911) (2441 . 2649) (2197 . 2405) 
(1953 . 2163) nil (1767 . 1911) nil (1561 . 1712) nil (1300 . 1524) (1131 . 
1270) (942 . 1091) (734 . 884) (555 . 696) nil (260 . 499) nil (50 . 201) nil))
|   org-buffers-delete-regions((nil nil (4614 . 4748) nil (4407 . 4572) nil 
(4204 . 4360) nil (3953 . 4169) (3695 . 3911) (3441 . 3653) (3193 . 3403) (2947 
. 3157) (2693 . 2911) (2441 . 2649) (2197 . 2405) (1953 . 2163) nil (1767 . 
1911) nil (1561 . 1712) nil (1300 . 1524) (1131 . 1270) (942 . 1091) (734 . 
884) (555 . 696) nil (260 . 499) nil (50 . 201) nil))
|   (save-excursion (goto-char (point-min)) (org-buffers-delete-regions 
(nreverse ...)))
|   (let ((inhibit-read-only t)) (save-excursion (goto-char ...) 
(org-buffers-delete-regions ...)))
|   org-buffers-delete-properties()
|   (progn (org-buffers-delete-properties) (show-all) (org-buffers-set-state 
(quote ...)))
|   (if (org-buffers-state-get :properties) (progn 
(org-buffers-delete-properties) (show-all) (org-buffers-set-state ...)) 
(org-buffers-set-state (quote ...)) (org-buffers-list (quote refresh)))
|   org-buffers-toggle-properties()
|   (if (and headings-p (org-buffers-state-get :properties)) 
(org-buffers-toggle-properties))
|   (let ((inhibit-read-only t) (headings-p ...) (flat-p ...)) (if (and 
headings-p ...) (org-buffers-toggle-properties)) (save-excursion (goto-char 
...) (if ... ...) (if flat-p ... ...) (mark-whole-buffer) (indent-region ... 
...)) (org-buffers-set-state (\` ...)))
|   org-buffers-toggle-headings()
|   call-interactively(org-buffers-toggle-headings nil nil)
`----

> > - In column view mode (which I also have not figured out why it would
> >   be used...), the heading uses a different font size than the normal
> >   entries so the headings don't line up at all.  This may be my fault,
> >   however.
> 
> I don't see this.

doesn't seem to happen to me now.  I may have imagined it...

> > - if I bring up the buffers list a second time, having created a new
> >   buffer in the meantime, the new buffer does not appear until I hit
> >   'g'.  I think any invocation of org-buffers-list should do an
> >   automatic update of the list.
> 
> A C-u prefix to org-buffers-list now forces update. I don't think I
> agree that it should be default. Speed is my concern -- I'd like it

Okay.  I understand the motivation.  It comes down to the difference
in behaviour between the default buffers listing approach in emacs and
the way dired works.  As long as I remember that it's more like dired,
I'm happy!

> > - Lastly, it would be nice to either avoid the single blank line at
> >   the start of the buffer or have point be at the first heading.
> >   Having point at the first (empty) line seems to cause some problems
> >   with speed motion keys sometimes...  it also wastes a line!
> 
> I've made point go to the first heading when the listing is
> created. However, I am wary about getting rid of that initial line, as I
> believe Carsten has said that Org/outline.el isn't always happy with
> first heading on first line. Certainly, I'm not inserting that newline
> character explicitly -- it appears via my (ab)use of Carsten's
> functions.

Okay.

> >   Actually, I think it might be useful to have point be placed at the
> >   heading that corresponds to the buffer currently being visited when
> >   the org-buffers-list command is invoked.  A thought.
> 
> Yes I like that and I've done it. It will only happen with a fresh
> listing though (first time, or C-u prefix), Otherwise buffer point is
> maintained.

Okay, again like dired as opposed to list-buffers.  Fine.

> Along similar lines, I've made it so that if you invoke C-x f
> (find-file) or C-x d (dired), the minibuffer prompt will start from the
> directory of the buffer on the current line, rather than whatever
> directory is associated with the listings buffer. I've found this useful
> (only works for the keybindings currently, not for M-x or from
> menu).

This sounds very reasonable.

> Also you can now flag buffers for reversion (i.e. revert-buffer) using
> "r"[6], and a few other changes.

I have auto-revert-mode set on most buffers so this is not of great
use to me but I can see it being useful to others.

> Thanks, your suggestions have been really helpful.

You're very welcome!  Suggestions are easy; implementation is the
tricky bit. :-)




reply via email to

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