emacs-devel
[Top][All Lists]
Advanced

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

RE: Losing minibuffer input


From: Drew Adams
Subject: RE: Losing minibuffer input
Date: Thu, 20 Nov 2014 16:24:26 -0800 (PST)

> > [FWIW, S-RET is used in at least one 3rd-party library for
> > an alternative (to RET) action on the input.]
> 
> There is no conflict since a 3rd-party library can freely override
> any default keybinding.

Sure, but users sooner or later start to complain about interference
with "standard" vanilla bindings, even if it is Emacs itself that
has come late to the game.

RET in Emacs, especially during completion, is not just like RET
in most applications.  Like TAB.  They both do so much more in
Emacs.

Modifiers used with RET and TAB should be reserved for actions
similar or analogous to what RET and TAB are used for without
modifiers (as we have done with M-TAB, for instance).  In particular,
in the minibuffer they should be reserved for actions similar to
what RET and TAB do in the minibuffer.  And this, whether it is
vanilla Emacs (now or in the future) or users or a 3rd-party
library that binds RET or TAB + modifier keys in minibuffer maps.

We should not be jumping at the chance to copy other programs,
which do not have such sophisticated (minibuffer, completion etc.)
interactions (if they have any such at all), in their simple use
of S-RET as a way to simply insert a hard return.  That is leveling
toward the bottom (most rudimentary) editing behavior instead of
reaching toward the top (the rest of Emacs).

Especially since in the Emacs (and UNIX and GNU/Linux and ASCII...)
world, we **already have a way of inserting a newline char**: just
type it (`C-j').  That's what we use for searching, and that is
what we should use to insert a newline char in the minibuffer also.
Use `C-j' to insert a newline char.  Simple.  Emacsy.  Unixy.

This is *already* a useful Emacs idiom.  There is no good reason 
to use up a powerfully mnemonic key like S-RET, to simply insert
a newline.

Make S-RET, M-RET, C-M-RET, C-S-RET, M-S-RET, C-M-S-RET, if we use
them, do things that are Emacs-analogous to things that Emacs does
for RET.  Similarly, make S-TAB, M-TAB, C-M-TAB, C-S-TAB, M-S-TAB,
C-M-S-TAB, if we use them, do things that are Emacs-analogous to
things that Emacs does for TAB.

It just does not always make sense to copy what is done in other
programs that cannot take advantage of all that Emacs has to offer.
They have no advantage in fitting in with other, existing Emacs
keys, habits, features and ways of use.  Too bad for them.  You
don't need to waste S-RET on inserting a C-j char.  So don't
bother.  I guarantee that you will find better, more
minibuffer-oriented things to do with such a key.



reply via email to

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