unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Drew Adams <drew.adams@oracle.com>
Cc: emacs-devel@gnu.org
Subject: Re: `C-b' is backward-char, `left' is left-char - why?
Date: Sat, 28 May 2011 00:09:31 +0300	[thread overview]
Message-ID: <83tycfc0l0.fsf@gnu.org> (raw)
In-Reply-To: <6F4054004B154CFB8E2753172D316C13@us.oracle.com>

> From: "Drew Adams" <drew.adams@oracle.com>
> Date: Fri, 27 May 2011 13:40:37 -0700
> 
> I'm curious. Why is it a good idea that `C-b' and `left' are no longer bound to
> the same command?

Because `left' and `right' behave differently depending on the
bidirectional context, whereas C-f and C-b are independent of it.

> I'm not asking about the difference; I can see that from the doc strings.  I'm
> wondering why we've broken their longstanding correspondence.

Because users of right-to-left scripts expect the current behavior of
the arrow keys.

> Lots of Emacs and Emacs Lisp does things based on which commands are used.  It's
> sometimes not enough that two commands behave the same or similarly.  If they
> are different commands then some code will likely not DTRT - some code will at
> least not treat them the same.

If you can suggest a way of catering to expectations of bidi users
without binding differently arrow and keyboard keys to cursor movement
commands, please do.

> Even if the bidi stuff specifies the same behavior for `backward-char' and
> `left-char' whenever there is in fact no bidirectional stuff present

It does.

> Why not make bidi optional?

It _is_ optional: you can set bidi-display-reordering to nil.  (Well,
actually it's nil now, but the plan is to make it t at some point
before Emacs 24 is released.)

> Why not have a minor mode for the bidi stuff

Bidi cannot be a minor mode, because bidi reordering for display
should happen automatically whenever there are right-to-left
characters in a buffer.  Minor modes don't work that way.

Besides, the rest of the world does bidi automatically; it's high time
Emacs does, too.

> only bind keys such as `left' to commands that are specific to bidi when that
> mode is turned on?  Why make such an invasive, top-level change to Emacs?

As I said: if you have practical suggestions (preferably with code),
let's hear them.  I made that change because every other program out
there differentiates the functions bound to these keys, but of course
if there's a better way of doing that in Emacs, I don't have any
dogmas here.

> I understand that bidi is a great addition to Emacs and will be welcomed by
> folks around the world.  I also realize that it is complex to implement.  But
> some of us will rarely, if ever, use it.

Emacs should behave exactly the same as it does without bidi when the
text doesn't include any right-to-left characters.  Anything else is a
bug.  The only reason why the bidi-display-reordering flag will stay
is because unibyte buffers should not be reordered.



  parent reply	other threads:[~2011-05-27 21:09 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-27 20:40 `C-b' is backward-char, `left' is left-char - why? Drew Adams
2011-05-27 20:48 ` Pascal J. Bourguignon
2011-05-27 21:11   ` Eli Zaretskii
2011-05-27 22:08   ` Drew Adams
2011-05-28  0:19   ` Nix
2011-05-27 21:09 ` Eli Zaretskii [this message]
2011-05-27 21:13   ` Eli Zaretskii
2011-05-27 22:08   ` Drew Adams
2011-05-27 22:23     ` Antoine Levitt
2011-05-27 23:19       ` Drew Adams
2011-05-28  0:46         ` Mohsen BANAN
2011-05-28  1:53           ` Drew Adams
2011-05-28  2:24             ` Mohsen BANAN
2011-05-28  8:00         ` Eli Zaretskii
2011-05-27 23:09     ` PJ Weisberg
2011-05-27 23:23       ` Drew Adams
2011-05-28  0:25         ` PJ Weisberg
2011-05-28  0:39           ` Drew Adams
2011-05-28  6:57             ` David Kastrup
2011-05-28  8:21     ` Eli Zaretskii
2011-05-28  0:48 ` Stefan Monnier
2011-05-28  1:54   ` Drew Adams
2011-05-28  7:07     ` David Kastrup
2011-05-28  8:26     ` Eli Zaretskii
2011-05-30  3:57     ` Stefan Monnier
2011-05-31 14:18       ` Davis Herring
2011-05-31 14:39         ` Eli Zaretskii
2011-06-01 11:48         ` Andy Moreton
2011-06-01 13:23           ` Eli Zaretskii
2011-06-01 23:26             ` Andy Moreton
2011-06-02  4:37               ` Eli Zaretskii
2011-06-02 10:38                 ` Andy Moreton
2011-06-02 11:12                   ` Eli Zaretskii
2011-06-02 12:59                     ` Andy Moreton
2011-06-02 15:09                       ` Eli Zaretskii
2011-06-02 16:23                         ` Andy Moreton
2011-06-02 17:43                           ` Eli Zaretskii
2011-06-02 21:42                             ` Andy Moreton
2011-06-03  7:01                               ` Eli Zaretskii
2011-06-02 17:09                         ` David Kastrup
2011-06-02 18:05                           ` Eli Zaretskii
2011-06-03 14:35                             ` David Kastrup
2011-06-03 15:08                               ` Eli Zaretskii
2011-06-03 15:14                                 ` David Kastrup
2011-06-03 16:48                                   ` Eli Zaretskii
2011-06-03 20:56                                     ` David Kastrup
2011-06-04  6:28                                       ` Eli Zaretskii
2011-06-05 16:51                                 ` Ehud Karni
2011-06-05 17:10                                   ` Eli Zaretskii
2011-06-05 17:19                                     ` Ehud Karni
2011-06-05 17:26                                       ` David Kastrup
2011-06-05 17:44                                         ` Eli Zaretskii
2011-06-05 18:26                                           ` David Kastrup
2011-06-05 19:22                                             ` Eli Zaretskii
2011-06-07  8:51                                               ` David Kastrup
2011-06-07 10:54                                                 ` Eli Zaretskii
2011-06-02 15:35                       ` PJ Weisberg
2011-06-02 17:44                         ` Eli Zaretskii
2011-06-02 19:29                           ` PJ Weisberg
2011-06-02 21:10                             ` Eli Zaretskii
2011-06-03  0:47                   ` Kenichi Handa
2011-06-03  7:13                     ` Eli Zaretskii
2011-06-05 11:27                       ` Kenichi Handa
2011-06-05 13:04                         ` Eli Zaretskii
2011-06-02  7:23             ` David Kastrup
2011-06-02  8:59               ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83tycfc0l0.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).