emacs-devel
[Top][All Lists]
Advanced

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

RE: arrow keys vs. C-f/b/n/p


From: Drew Adams
Subject: RE: arrow keys vs. C-f/b/n/p
Date: Sat, 12 Jun 2010 12:16:29 -0700

> > But I think you should also make it clear (clearer) that this
> > "logical" order corresponds to buffer position, even if that might
> > seem more programmer-oriented. Emacs users sooner or later have an
> > understanding of buffer positions, so you might as well anchor the
> > notion of "logical" order as being buffer order.
> 
> Drew, I am not sure why you think this buffer order is so fundamental.
> An Emacs user doesn't see a buffer order.  There is an order in which
> text is layed out on the screen.  There is an order in which the
> language flows in the text.  These are the things that 
> matter.  How the characters are stored inside the Emacs buffer is
> an internal matter.
> 
> If an Emacs user graduates to becoming a programmer then he/she will
> figure out how things work internally.  But it doesn't seem 
> right to me that the internal storage should dictate everybody's
> view of the world.
> 
> I notice that Lennart makes the same point later in the thread.
> 
> In fact, I began to write a response to you last night.  When 
> I checked things in the morning, there were comprehensive
> explanations from Eli, which I thought settled the issues
> quite satisfactorily.
> 
> There is no harm in the users knowing that the buffer order 
> is the same as the logical, or reading, order.  But, even
> if the buffer order happened to be different, I don't think
> the design issues would be any different.
> 
> I am quite clear that the users should be given a clear 
> conceptual model that fits with their experience, not how
> things are implemented internally. 

It's not about "internal" implementation. It is, as you say, about a user's
conceptual model.  Is `point' or character position "internal"?

In Emacs, buffer order is part of a user model.  Calling it "reading order" is
fine, and can help, as long as the two notions correspond.  Calling it the
"logical" order doesn't really help.  (Is a "visual" order illogical? is it
physical?)  But as Eli has pointed out, that is apparently the term used in the
bidi literature.  Calling it "character" order begs the question: wrt what?

What's important is to explain what in fact it is, regardless of what you call
it.  What's the behavior?

What reading/logical/buffer order means includes, in particular, how movement
commands behave.  What I was concerned about is the behavior of typical
`forward-*' commands.  That behavior is part of a user's conceptual model.  (Not
to mention part of a programmer's mental model.  And in Emacs, users are also
often Elisp programmers.)

Anyway, it sounds like we are both happy with Eli's explanation and the design.
Whether bidi users will also need/want some alternative (additional) kind of
movement that respects "visual" order in some way is another question, which I
can't speak to.  I'm not a bidi user.

I'm happy knowing that `forward-*' means forward through the buffer, from
point-min toward point-max.  Phrase that fact anyway you like, but it should be
communicated to users.




reply via email to

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