all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Dmitry Gutov'" <dgutov@yandex.ru>
Cc: 'Sebastien Vauban'
	<public-wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@plane.gmane.org>,
	emacs-devel@gnu.org
Subject: RE: Unuseful keybindings
Date: Sun, 23 Dec 2012 10:51:59 -0800	[thread overview]
Message-ID: <744C1BFE989545DF9F82E4DE55002679@us.oracle.com> (raw)
In-Reply-To: <50D7405E.5070604@yandex.ru>

> > And your consistency argument works both ways: Why not 
> > consistently remove all function-key default bindings?
> 
> This is reductio ad absurdum. Not every kind of consistency 
> is equally valuable.

Precisely my point.  IF you use that kind of argument THEN it applies equally in
the other direction.  It's not about consistency vs inconsistency in the
abstract.

> >> The possible reason why those keys are so nice and still
> >> mostly have no bindings is they are far from the home row,
> >
> > I believe that Emacs Dev intentionally avoided binding them 
> > by default.  They were left for users and applications.
> >
> > `home' (Home) and the arrow keys are far from the home row also.
> > They have been bound since they existed, AFAIK.
> 
> Because they behave the same way in many other programs, I'd wager.
> f-keys, on the other hand, have not enjoyed the same degree of 
> consistent behavior across programs.

That function keys are not so standard is one reason not to bind them by
default.  But it is certainly not the only reason, or even the most important
reason.

> >> not in a sequence in the middle of other commands during 
> >> an editing session.
> >
> > Why?  Wanna guess how many users hold down an arrow key to 
> > repeat its command?
> >
> > Imagine if Emacs Dev had misguidedly bound `down' (the down 
> > arrow) by default to a non-repeatable command such as
> > `fullscreen'.  Not as useful as the key could be.
> 
> Is that the only reason you think binding `down' to `fullscreen' is 
> ill-advisable? :)

The point is that `down' is bound to a repeatable action.  For that reason alone
the binding would be reasonable even if it did not also agree with outside
convention.

On the other hand, `home' is not repeatable.  About the only argument in favor
of binding `home' as we do (that I can think of) is the argument of consistency
with other apps.

From my own point of view, if we ever came to the point where we had an
important repeatable command and we had no available repeatable keys on which to
bind it by default, I would probably sooner sacrifice our externally consistent
`home' binding than lose the convenience (yes, by default) of that command's
repeatability.

Binding `home' to a non-repeatable, non-prefix command is, _in itself_, a waste.
It is OK to do, in order to be consistent with other apps, as long as the
scarcity of repeatable and prefix keys has not reached a critical level.  If it
got critical then `home' would be up there in the top 10 for regrooving, in my
book.

Why don't I apply the same reasoning to `f11'?  I do, but the context is
different: (a) function keys have in the past been reserved for users and apps;
(b) this is now and that was then, and back then there were more repeatable keys
still virgin (more coral reefs unspoiled); (c) I'm not convinced that `f11' for
fullscreen is so commonly used as `home' is, outside Emacs.

I do not expect everyone to share this more extreme point of view that even
longstanding `home' could conceivably be sacrificed for a better command.  

That is not necessary for my general point.  But yes, I do think that what's
good for Emacs and Emacs users comes first, not consistency with external apps.

The question in that context would be, for me at least, which is better for
Emacs users: provide a default binding to a repeatable key for the important
Emacs command or keep `home' compatible with the outside world.  And yes, I
recognize that Emacs users do not use only Emacs.  That's one thing that makes
such questions interesting, not black & white.

> >>> There is absolutely no reason for Emacs to bind `f3' and
> >>> `f4' by default.
> >>
> >> These keys are featured on the Emacs tour page, so there's 
> >> no getting rid of them now, I suppose.
> >
> > That's silly.  Just update the tour to use `C-x e e e e 
> ...' or whatever.
> 
> Emacs has a policy of backwards compatibility, whenever possible, or 
> something.

Whenever possible?  No.  Backwards compatibility, like mirroring external
conventions, is a relative good, not an absolute criterion.  Emacs Dev has not
been so black & white.  We are not dogmatists.

> Think back to the latest reversal of the `M-=' binding, which has 
> received a rather small backlash.

I didn't follow it closely, but I think that thread rather supports what I'm
saying.  Nothing is cast in concrete.  Changes were made wrt `M-=', and comments
from others were taken into consideration.




  reply	other threads:[~2012-12-23 18:51 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-18 13:00 Unuseful keybindings Thierry Volpiatto
2012-12-18 13:36 ` Andreas Schwab
2012-12-18 14:48   ` Thierry Volpiatto
2012-12-18 16:58     ` Sam Steingold
2012-12-18 19:30     ` Mathias Dahl
2012-12-18 19:37       ` Thierry Volpiatto
2012-12-22  3:22         ` Chong Yidong
2012-12-22  4:39           ` Drew Adams
2012-12-22  5:09             ` Xue Fuqiao
2012-12-22 21:24             ` Sebastien Vauban
2012-12-22 21:48               ` Dmitry Gutov
2012-12-22 22:46                 ` Drew Adams
2012-12-22 23:32                   ` Dmitry Gutov
2012-12-23  0:45                     ` Drew Adams
2012-12-23  1:07                       ` Xue Fuqiao
2012-12-23  1:19                         ` Daniel Colascione
2012-12-23  1:54                           ` advertizing keyboard macros better [was: Unuseful keybindings] Drew Adams
2012-12-23  2:10                             ` Xue Fuqiao
2012-12-23  9:29                       ` Unuseful keybindings Juri Linkov
2012-12-23 16:55                         ` Drew Adams
2012-12-26 14:32                           ` Kevin Rodgers
2012-12-26 22:21                             ` Xue Fuqiao
2012-12-27  3:42                               ` Eli Zaretskii
2012-12-23 14:41                       ` Dmitry Gutov
2012-12-23 14:57                         ` Jambunathan K
2012-12-23 16:52                           ` Drew Adams
2012-12-23 17:47                             ` Jambunathan K
2012-12-23 18:44                               ` Drew Adams
2012-12-23 19:36                                 ` Jambunathan K
2012-12-23 20:25                                 ` Jambunathan K
2012-12-23 21:04                                   ` Drew Adams
2012-12-24  9:35                                   ` Juri Linkov
2012-12-24 13:02                                     ` Xue Fuqiao
2012-12-24 14:13                                       ` Drew Adams
2012-12-23 17:03                         ` Drew Adams
2012-12-23 17:33                           ` Dmitry Gutov
2012-12-23 18:51                             ` Drew Adams [this message]
2012-12-23 20:53                             ` Lars Ingebrigtsen
2012-12-23 21:13                               ` Drew Adams
2012-12-24 21:43                                 ` Drew Adams
2012-12-23 21:25                               ` Andreas Schwab
2012-12-24  9:39                               ` Juri Linkov
2012-12-23 17:58                           ` Stephen J. Turnbull
2012-12-23 18:42                             ` Drew Adams
2012-12-23  0:19                   ` Mathias Dahl
2012-12-23  0:55                     ` Drew Adams
2012-12-23  9:32                 ` Juri Linkov
2012-12-23 10:37                   ` Xue Fuqiao
2012-12-23 10:56                     ` Dmitry Gutov
2012-12-23 11:22                       ` Xue Fuqiao
2012-12-22 22:28               ` Drew Adams
2012-12-22  7:42           ` Thierry Volpiatto
2012-12-22  8:23           ` Juri Linkov
2012-12-23  9:31             ` Juri Linkov
2012-12-24 10:29               ` Juri Linkov
2012-12-24 17:10                 ` Juri Linkov
2012-12-29  5:57                   ` Chong Yidong
2013-01-10 19:17                     ` Sam Steingold
2013-01-10 19:13                 ` Sam Steingold
2013-01-10 22:38                   ` Xue Fuqiao
2013-01-11  0:31                   ` Juri Linkov
2013-01-11  1:17                     ` Stefan Monnier
2013-01-11  9:58                       ` Juri Linkov
2013-01-11 14:42                         ` Stefan Monnier
2013-01-11 18:26                         ` chad
2013-01-12  0:50                           ` Juri Linkov
2013-01-12 10:03                             ` Jan Djärv
2013-01-13 10:19                               ` Juri Linkov
2013-01-13 11:19                                 ` Jan Djärv
2012-12-19  0:27       ` Drew Adams
2012-12-19  6:32         ` Thierry Volpiatto
2012-12-19 16:43         ` Leo
2012-12-18 13:40 ` Xue Fuqiao
2012-12-18 17:41 ` Eli Zaretskii
2012-12-18 17:49   ` Thierry Volpiatto
2012-12-18 19:10     ` 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

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

  git send-email \
    --in-reply-to=744C1BFE989545DF9F82E4DE55002679@us.oracle.com \
    --to=drew.adams@oracle.com \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=public-wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@plane.gmane.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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.