all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Why change the advertised bindings of Isearch commands?
@ 2015-11-26 18:45 Drew Adams
  2015-11-26 23:16 ` Juri Linkov
  0 siblings, 1 reply; 11+ messages in thread
From: Drew Adams @ 2015-11-26 18:45 UTC (permalink / raw)
  To: Emacs-devel

In Isearch, these key bindings have long been in effect,
and they are still in effect:

M-e - isearch-edit-string
M-c - isearch-toggle-case-fold
M-r - isearch-toggle-regexp

These keys are far easier to use than M-s c, M-s r, M-s e.
So why have we changed the advertised bindings to be these
more complex keys?

IOW, why this?
(put 'isearch-toggle-case-fold :advertised-binding "\M-sc")
(put 'isearch-toggle-regexp    :advertised-binding "\M-sr")
(put 'isearch-edit-string      :advertised-binding "\M-se")

I do not think this is an improvement for users.

If the aim was to let users know that they _can_ find such
commands on the common prefix `M-s' (which is fine), that
information is available in other ways.  For one thing, it
is trivial to do `M-s C-h' during Isearch, to see all of
the `M-s' bindings.

Let's please not advertise these more complex bindings in
favor of the longstanding, simple ones (thankfully still
usable).



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Why change the advertised bindings of Isearch commands?
  2015-11-26 18:45 Drew Adams
@ 2015-11-26 23:16 ` Juri Linkov
  2015-11-27  0:03   ` Drew Adams
  0 siblings, 1 reply; 11+ messages in thread
From: Juri Linkov @ 2015-11-26 23:16 UTC (permalink / raw)
  To: Drew Adams; +Cc: Emacs-devel

> In Isearch, these key bindings have long been in effect,
> and they are still in effect:
>
> M-e - isearch-edit-string
> M-c - isearch-toggle-case-fold
> M-r - isearch-toggle-regexp
>
> These keys are far easier to use than M-s c, M-s r, M-s e.
> So why have we changed the advertised bindings to be these
> more complex keys?

0. emacs -Q
1. C-h c M-e - M-e runs the command forward-sentence
2. C-h c M-c - M-c runs the command capitalize-word
3. C-h c M-r - M-r runs the command move-to-window-line-top-bottom

IOW, those are keys that are more useful to exit Isearch and do
what they do normally, thus advertising the new bindings will help
to get rid of old bindings in later releases.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: Why change the advertised bindings of Isearch commands?
  2015-11-26 23:16 ` Juri Linkov
@ 2015-11-27  0:03   ` Drew Adams
  2015-11-27  7:58     ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Drew Adams @ 2015-11-27  0:03 UTC (permalink / raw)
  To: Juri Linkov; +Cc: Emacs-devel

> > In Isearch, these key bindings have long been in effect,
> > and they are still in effect:
> >
> > M-e - isearch-edit-string
> > M-c - isearch-toggle-case-fold
> > M-r - isearch-toggle-regexp
> >
> > These keys are far easier to use than M-s c, M-s r, M-s e.
> > So why have we changed the advertised bindings to be these
> > more complex keys?
> 
> 0. emacs -Q
> 1. C-h c M-e - M-e runs the command forward-sentence
> 2. C-h c M-c - M-c runs the command capitalize-word
> 3. C-h c M-r - M-r runs the command move-to-window-line-top-bottom
> 
> IOW, those are keys that are more useful to exit Isearch and do
> what they do normally, thus advertising the new bindings will help
> to get rid of old bindings in later releases.

I disagree that we should remove those keys from the realm of
Isearch just because they have global bindings.  There are many,
many keys that you can use to exit Isearch.  And different users
use different such keys to exit.  And different users care to
have different keys exit and act immediately.

I see no reason to add these keys, by default, to the list
of keys that exit Isearch.

Any user who is that much a fan of performing any of those
global actions without first quitting Isearch can of course
bind them herself in the Isearch map - as has always been the
case.  That is trivial to do.

These keys perform important and commonly used Isearch actions,
and they should be kept for Isearch, as is.  This kind of
change is gratuitous (it has not been demanded by users), and
is a step backward.  IMHO.

I don't mind that the commands are _added_ to the `M-s' prefix.
What is wrong is to make those more complex bindings the
advertised bindings.

At the point where Emacs Dev has actually decided to remove
these short keys, for some reason, presumably that removal
will be part of a more interesting set of features.  And at
that point, if it ever comes, there would be no need to
advertise the complicated keys, as the quicker keys would
be gone.

This change is premature and uncalled for, IMHO.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Why change the advertised bindings of Isearch commands?
  2015-11-27  0:03   ` Drew Adams
@ 2015-11-27  7:58     ` Eli Zaretskii
  2015-11-28  5:33       ` Richard Stallman
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2015-11-27  7:58 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel, juri

> Date: Thu, 26 Nov 2015 16:03:28 -0800 (PST)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: Emacs-devel <emacs-devel@gnu.org>
> 
> > 1. C-h c M-e - M-e runs the command forward-sentence
> > 2. C-h c M-c - M-c runs the command capitalize-word
> > 3. C-h c M-r - M-r runs the command move-to-window-line-top-bottom
> > 
> > IOW, those are keys that are more useful to exit Isearch and do
> > what they do normally, thus advertising the new bindings will help
> > to get rid of old bindings in later releases.
> 
> I disagree that we should remove those keys from the realm of
> Isearch just because they have global bindings.  There are many,
> many keys that you can use to exit Isearch.  And different users
> use different such keys to exit.  And different users care to
> have different keys exit and act immediately.

The issue is not how to exit Isearch.  The issue is how to go forward
one sentence or capitalize a word while in Isearch.  What you are
saying is that a user who spots a word to be capitalized during
Isearch needs to do at least 2 things: exit Isearch with some key,
then type M-c.  Jury wants just M-c within Isearch to do both.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: Why change the advertised bindings of Isearch commands?
       [not found]     ` <<83egfbub4q.fsf@gnu.org>
@ 2015-11-27  9:33       ` Drew Adams
  2015-11-27 10:16         ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Drew Adams @ 2015-11-27  9:33 UTC (permalink / raw)
  To: Eli Zaretskii, Drew Adams; +Cc: emacs-devel, juri

> > > 1. C-h c M-e - M-e runs the command forward-sentence
> > > 2. C-h c M-c - M-c runs the command capitalize-word
> > > 3. C-h c M-r - M-r runs the command move-to-window-line-top-bottom
> > >
> > > IOW, those are keys that are more useful to exit Isearch and do
> > > what they do normally, thus advertising the new bindings will help
> > > to get rid of old bindings in later releases.
> >
> > I disagree that we should remove those keys from the realm of
> > Isearch just because they have global bindings.  There are many,
> > many keys that you can use to exit Isearch.  And different users
> > use different such keys to exit.  And different users care to
> > have different keys exit and act immediately.
>
> The issue is not how to exit Isearch.  The issue is how to go
> forward one sentence or capitalize a word while in Isearch.

Read what I said, please.  No one said that the "issue" is
"how to exit".  It's about changing the default behavior to
make these keys "exit and act immediately".

Using M-c to exit and capitalize means removing it as a key
that does something useful _in_ Isearch.

And the particular thing M-c does now, which we would
be losing it for, is a common Isearch action: toggle
case-fold. Likewise for the other keys.

> What you are saying is that a user who spots a word to be
> capitalized during Isearch needs to do at least 2 things:
> exit Isearch with some key, then type M-c.

Exactly as it has always been: `RET M-c'.

And not "at least 2 things".  Exactly 2 things: exit & act.
If you want to do something outside of Isearch you quit
Isearch and do it.  Nothing new here.

What you are saying is that a user who wants to toggle
case-fold should need to do 2 things: `M-s c'.  You might
say, "Six of one; half a dozen of the other."  Except that
one is the longstanding default, and was done for Isearch.
The other is one person's preference (so far).

The question (which IMO should have been raised, instead of
just implementing a change) is which is more useful for
most users of Isearch, most of the time.

So far, no reason for this change in defaults (for 3 keys)
was even given.  AFAIK, it ain't broke; no need to fix it.

Why change the default behavior for these particular keys
now?  And without any discussion or polling of users?

As I said, "different users care to have different keys
exit and act immediately".  It is trivial for a user to
make M-c exit and act immediately.

The default behavior makes sense to me.  I don't see a
crying need to reduce `RET M-c' to M-c and make users use
`M-s c' to toggle case sensitivity.

But let's hear some arguments in favor of the changes, please.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Why change the advertised bindings of Isearch commands?
  2015-11-27  9:33       ` Why change the advertised bindings of Isearch commands? Drew Adams
@ 2015-11-27 10:16         ` Eli Zaretskii
  0 siblings, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2015-11-27 10:16 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel, juri

> Date: Fri, 27 Nov 2015 01:33:10 -0800 (PST)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: juri@linkov.net, emacs-devel@gnu.org
> 
> > > > 1. C-h c M-e - M-e runs the command forward-sentence
> > > > 2. C-h c M-c - M-c runs the command capitalize-word
> > > > 3. C-h c M-r - M-r runs the command move-to-window-line-top-bottom
> > > >
> > > > IOW, those are keys that are more useful to exit Isearch and do
> > > > what they do normally, thus advertising the new bindings will help
> > > > to get rid of old bindings in later releases.
> > >
> > > I disagree that we should remove those keys from the realm of
> > > Isearch just because they have global bindings.  There are many,
> > > many keys that you can use to exit Isearch.  And different users
> > > use different such keys to exit.  And different users care to
> > > have different keys exit and act immediately.
> >
> > The issue is not how to exit Isearch.  The issue is how to go
> > forward one sentence or capitalize a word while in Isearch.
> 
> Read what I said, please.  No one said that the "issue" is
> "how to exit".  It's about changing the default behavior to
> make these keys "exit and act immediately".

Read what _I_ said, please.  I was describing the issue Jury alluded
to.

> Using M-c to exit and capitalize means removing it as a key
> that does something useful _in_ Isearch.

And evidently, the desire to remove it means we think its binding
outside Isearch is more useful.

> And the particular thing M-c does now, which we would
> be losing it for, is a common Isearch action: toggle
> case-fold. Likewise for the other keys.

You have an alternative for that.

> > What you are saying is that a user who spots a word to be
> > capitalized during Isearch needs to do at least 2 things:
> > exit Isearch with some key, then type M-c.
> 
> Exactly as it has always been: `RET M-c'.

The intent of the advertised bindings is to change that at some future
point.

> And not "at least 2 things".  Exactly 2 things: exit & act.

No, it's "at least 2 things".  Because depending on how you exit
Isearch you may need to move point first.

> So far, no reason for this change in defaults (for 3 keys)
> was even given.  AFAIK, it ain't broke; no need to fix it.

That's a different issue.  You asked why the advertised bindings were
changed; you now have the answer, I hope.

> As I said, "different users care to have different keys
> exit and act immediately".

There are facilities to tailor the commands that exit Isearch, if the
user doesn't like the defaults.

> But let's hear some arguments in favor of the changes, please.

That's a separate discussion.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: Why change the advertised bindings of Isearch commands?
       [not found] ` <<83k2p3sq71.fsf@gnu.org>
@ 2015-11-27 16:50   ` Drew Adams
  2015-11-27 23:09     ` Juri Linkov
  0 siblings, 1 reply; 11+ messages in thread
From: Drew Adams @ 2015-11-27 16:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel, juri

> > Using M-c to exit and capitalize means removing it as a key
> > that does something useful _in_ Isearch.
> 
> And evidently, the desire to remove it means we think its binding
> outside Isearch is more useful.

We do?  How and when did we decide that?

What were the arguments pro and con - where can I find the
discussion?  Did we poll the users, to get their take on this?
 
> > > What you are saying is that a user who spots a word to be
> > > capitalized during Isearch needs to do at least 2 things:
> > > exit Isearch with some key, then type M-c.
> >
> > Exactly as it has always been: `RET M-c'.
> 
> The intent of the advertised bindings is to change that at some
> future point.

Since when do we advertise bindings for that reason?  Can you
point to a case where we've done that?  An advertised binding
is typically used to ensure that the simplest or most flexible
binding gets advertised, instead of a more complex binding that
the tools would otherwise automatically report as "the" binding.

At any rate, it's that intention to "change that at some future
point" that I haven't seen discussed or decided.

And that I disagree with.  But if it _has_ been discussed and
decided then I have no problem supporting the decision, even
if I disagree with it.

> > And not "at least 2 things".  Exactly 2 things: exit & act.
> 
> No, it's "at least 2 things".  Because depending on how you exit
> Isearch you may need to move point first.

Oh come on.  Sure, you _could_ exit with a key that you bind
to a function that does whatever nutty thing you like, and
then have to move back where you were.  This is 100% beside
the point (seems like arguing for the sake of arguing), since
there are other keys (e.g. RET) that do _not_ take you all
around Robinson's barn.

> > So far, no reason for this change in defaults (for 3 keys)
> > was even given.  AFAIK, it ain't broke; no need to fix it.
> 
> That's a different issue.  You asked why the advertised
> bindings were changed; you now have the answer, I hope.

No, my question is why _should_ we change these bindings?

Your answer is that they were changed because we decided to
change them.  Sheesh.  How about an argument to support the
change and the intention to remove these Isearch bindings?
How about polling the users?

> > As I said, "different users care to have different keys
> > exit and act immediately".
> 
> There are facilities to tailor the commands that exit
> Isearch, if the user doesn't like the defaults.

Precisely.  So why the need for this change?  That's the
question (still unanswered).

> > But let's hear some arguments in favor of the changes,
> > please.
> 
> That's a separate discussion.

No, that's exactly what this thread is about.  I started
the thread, and that is what my question is: _Why_ should
we change these bindings?  Reasons, please.

You seem to be content to say that the "reason" for the
change is that Juri made the change - he decided that it
should be made and he made it.  That's the starting point
for the question; it does not answer the question.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Why change the advertised bindings of Isearch commands?
  2015-11-27 16:50   ` Drew Adams
@ 2015-11-27 23:09     ` Juri Linkov
  2015-11-28  1:01       ` Drew Adams
  0 siblings, 1 reply; 11+ messages in thread
From: Juri Linkov @ 2015-11-27 23:09 UTC (permalink / raw)
  To: Drew Adams; +Cc: Eli Zaretskii, emacs-devel

>> > Using M-c to exit and capitalize means removing it as a key
>> > that does something useful _in_ Isearch.
>>
>> And evidently, the desire to remove it means we think its binding
>> outside Isearch is more useful.
>
> We do?  How and when did we decide that?
>
> What were the arguments pro and con - where can I find the
> discussion?  Did we poll the users, to get their take on this?

You can find the discussion that you missed in the mail archive.

>> > > What you are saying is that a user who spots a word to be
>> > > capitalized during Isearch needs to do at least 2 things:
>> > > exit Isearch with some key, then type M-c.
>> >
>> > Exactly as it has always been: `RET M-c'.
>>
>> The intent of the advertised bindings is to change that at some
>> future point.
>
> Since when do we advertise bindings for that reason?  Can you
> point to a case where we've done that?  An advertised binding
> is typically used to ensure that the simplest or most flexible
> binding gets advertised, instead of a more complex binding that
> the tools would otherwise automatically report as "the" binding.
>
> At any rate, it's that intention to "change that at some future
> point" that I haven't seen discussed or decided.
>
> And that I disagree with.  But if it _has_ been discussed and
> decided then I have no problem supporting the decision, even
> if I disagree with it.

I remember that the consensus was to reduce the number of Isearch keys
that override their global bindings.

>> > And not "at least 2 things".  Exactly 2 things: exit & act.
>>
>> No, it's "at least 2 things".  Because depending on how you exit
>> Isearch you may need to move point first.
>
> Oh come on.  Sure, you _could_ exit with a key that you bind
> to a function that does whatever nutty thing you like, and
> then have to move back where you were.  This is 100% beside
> the point (seems like arguing for the sake of arguing), since
> there are other keys (e.g. RET) that do _not_ take you all
> around Robinson's barn.
>
>> > So far, no reason for this change in defaults (for 3 keys)
>> > was even given.  AFAIK, it ain't broke; no need to fix it.
>>
>> That's a different issue.  You asked why the advertised
>> bindings were changed; you now have the answer, I hope.
>
> No, my question is why _should_ we change these bindings?
>
> Your answer is that they were changed because we decided to
> change them.  Sheesh.  How about an argument to support the
> change and the intention to remove these Isearch bindings?
> How about polling the users?
>
>> > As I said, "different users care to have different keys
>> > exit and act immediately".
>>
>> There are facilities to tailor the commands that exit
>> Isearch, if the user doesn't like the defaults.
>
> Precisely.  So why the need for this change?  That's the
> question (still unanswered).
>
>> > But let's hear some arguments in favor of the changes,
>> > please.
>>
>> That's a separate discussion.
>
> No, that's exactly what this thread is about.  I started
> the thread, and that is what my question is: _Why_ should
> we change these bindings?  Reasons, please.

Nobody changed these bindings yet, you can still use them.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: Why change the advertised bindings of Isearch commands?
  2015-11-27 23:09     ` Juri Linkov
@ 2015-11-28  1:01       ` Drew Adams
  0 siblings, 0 replies; 11+ messages in thread
From: Drew Adams @ 2015-11-28  1:01 UTC (permalink / raw)
  To: Juri Linkov; +Cc: Eli Zaretskii, emacs-devel

> >> And evidently, the desire to remove it means we think its
> >> binding outside Isearch is more useful.
> >
> > We do?  How and when did we decide that?
> >
> > What were the arguments pro and con - where can I find the
> > discussion? Did we poll the users, to get their take on this?
> 
> You can find the discussion that you missed in the mail archive.

Could you possibly please point to it?

Subject? month? year? keywords?  I searched quickly (and unsuccessfully) for "capitalize" over the last 8 years, but
a pointer would help.

> > And that I disagree with.  But if it _has_ been discussed and
> > decided then I have no problem supporting the decision, even
> > if I disagree with it.
> 
> I remember that the consensus was to reduce the number of
> Isearch keys that override their global bindings.

A consensus, huh?  And these particular keys were discussed,
and decided on?  I'd like to see that discussion.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Why change the advertised bindings of Isearch commands?
  2015-11-27  7:58     ` Eli Zaretskii
@ 2015-11-28  5:33       ` Richard Stallman
  2015-11-28 20:30         ` John Wiegley
  0 siblings, 1 reply; 11+ messages in thread
From: Richard Stallman @ 2015-11-28  5:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: juri, drew.adams, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > The issue is not how to exit Isearch.  The issue is how to go forward
  > one sentence or capitalize a word while in Isearch.  What you are
  > saying is that a user who spots a word to be capitalized during
  > Isearch needs to do at least 2 things: exit Isearch with some key,
  > then type M-c.  Jury wants just M-c within Isearch to do both.

I was unhappy when M-c was given a special search meaning, for precisely
this reason.  I've actually been tripped up by M-c and with M-e, though
not very often.


-- 
Dr Richard Stallman
President, Free Software Foundation (gnu.org, fsf.org)
Internet Hall-of-Famer (internethalloffame.org)
Skype: No way! See stallman.org/skype.html.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Why change the advertised bindings of Isearch commands?
  2015-11-28  5:33       ` Richard Stallman
@ 2015-11-28 20:30         ` John Wiegley
  0 siblings, 0 replies; 11+ messages in thread
From: John Wiegley @ 2015-11-28 20:30 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Eli Zaretskii, emacs-devel, drew.adams, juri

>>>>> Richard Stallman <rms@gnu.org> writes:

> I was unhappy when M-c was given a special search meaning, for precisely
> this reason. I've actually been tripped up by M-c and with M-e, though not
> very often.

I would also prefer it if M-c and M-e were capable of exiting isearch, since
that is consistent with other forms of use.

John



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-11-28 20:30 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <<98f8a71f-1f10-4ff6-a4c1-8dc2d179b84b@default>
     [not found] ` <<87ziy05p3g.fsf@mail.linkov.net>
     [not found]   ` <<1a6f342a-3e59-4555-a345-e518cc598299@default>
     [not found]     ` <<83egfbub4q.fsf@gnu.org>
2015-11-27  9:33       ` Why change the advertised bindings of Isearch commands? Drew Adams
2015-11-27 10:16         ` Eli Zaretskii
     [not found] <<dddad317-4c44-4a68-b1d3-19bbd3a6746f@default>
     [not found] ` <<83k2p3sq71.fsf@gnu.org>
2015-11-27 16:50   ` Drew Adams
2015-11-27 23:09     ` Juri Linkov
2015-11-28  1:01       ` Drew Adams
2015-11-26 18:45 Drew Adams
2015-11-26 23:16 ` Juri Linkov
2015-11-27  0:03   ` Drew Adams
2015-11-27  7:58     ` Eli Zaretskii
2015-11-28  5:33       ` Richard Stallman
2015-11-28 20:30         ` John Wiegley

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.