unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Gregory Heytings <gregory@heytings.org>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: RE: [External] : Re: POLL: make C-x o transient
Date: Sun, 31 Jan 2021 17:39:41 +0000	[thread overview]
Message-ID: <SA2PR10MB447445C6EB7403363B7C04BFF3B79@SA2PR10MB4474.namprd10.prod.outlook.com> (raw)
In-Reply-To: <0859919bb5d7c7618f35@heytings.org>

> > > a very useful (i[f] not necessary) feature...
                     ^^^^^^^^^^^^^^^^^^

> > Indeed, as you admit, that's _not_ a necessary
> > feature for a repeatable command.
> 
> That's not what I said. 

Sure seems to be what you said: your claim was that
it's "very useful", but "not necessary".

> > The _much_ more common use case for a repeatable
> > command is to be able to use the same prefix arg
> > for each repetition - i.e., pass the prefix arg
> > at the beginning. ...
>
> > Replacing `C-x z' by `C-=' -- or by any other
> > single key -- gains nothing (AFAICS).
> 
> I understand that you believe that having the
> possibility to change the argument between two
> repetitions is useless.

You may understand that, but that's not what I said,
at all.

I said it's not a common use case.  I said the much
more common case is providing a prefix arg once (e.g.
to the key that initiates repetition of some other
command), and having it apply to _each_ repetition.

More importantly, I pointed out that nothing is
gained by replacing `C-x z' by `C-='.  Whatever key
sequence is bound to a command that _initiates_
repetition, is _NOT_ bound to a repeatable command.

A single, repeatable key such as `C-=' is better
saved (for users or for Emacs someday) to bind to a
repeatable command.

> But it is in essence what the OP asked: he wanted
> both other-window _and_ other-window-backward,
> not just a repeatable other-window.

The typical case is that Emacs already has a command
for doing something forward, and another command for
doing it backward.  Making each of those repeatable
solves the same "problem".  I mentioned the case of
`C-a' and `C-e' - just switch to the other key to
switch direction.

The case that initiated this, `other-window', does
not have any reverse-direction partner.  Instead, a
negative prefix arg reverses direction.  (But there
are ways to accommodate that, if it's important.)

Even without changing anything it's not _difficult_
to reverse direction:

`C-x o C-x z z... C-- C-x o C-x z z...

Or define `other-window-back` and bind repeatable
versions of `other-window' and `other-window-back'
to different repeatable keys (like the case of
`C-a' and `C-e').  But as Teemu pointed out, the
use case for cycling backward isn't very strong
(for the reason he gave).

Lots of things are possible.

But again, my _main point_ was about not wasting a
repeatable key (e.g. `C-=') for a NON-repeatable
command (`repeat').

It may not have been obvious to some (and so far,
you haven't acknowledged this deficiency in your
argument in favor of `C-=' as a replacement for
`C-x z') that command `repeat' (now`C-x z') is
NOT a repeatable command.

One doesn't bind that command to a key that you
can just hold down to repeat some action.  Its
action is only to _initiate_ the use of some
other command in a repeatable way.



  reply	other threads:[~2021-01-31 17:39 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-24  6:12 POLL: make C-x o transient Zhiwei Chen
2021-01-24 11:32 ` Kévin Le Gouguec
2021-01-24 14:40   ` andrés ramírez
2021-01-25  5:52 ` Richard Stallman
2021-01-25 12:21   ` Zhiwei Chen
2021-01-26  6:02     ` Richard Stallman
2021-01-25 14:39 ` Stefan Monnier
2021-01-25 15:30   ` aitor
2021-01-25 16:38     ` Philip K.
2021-01-25 17:23     ` Colin Baxter
2021-01-26  5:59     ` Richard Stallman
2021-01-26 10:44       ` Olivier Certner
2021-01-26 23:38         ` Sean Whitton
2021-01-27  6:51           ` Colin Baxter
2021-01-25 15:47   ` [External] : " Drew Adams
2021-01-25 17:01   ` Juri Linkov
2021-01-25 17:21     ` Omar Polo
2021-01-27 17:55     ` Juri Linkov
2021-01-28  7:46       ` Philip K.
2021-01-28  8:50         ` Juri Linkov
2021-01-28  9:40       ` martin rudalics
2021-01-28 18:43         ` Juri Linkov
2021-01-28 19:13           ` Gregory Heytings
2021-01-28 20:34             ` Kévin Le Gouguec
2021-01-28 21:27               ` Gregory Heytings
2021-01-28 21:58             ` Alan Mackenzie
2021-01-28 23:19               ` Philip K.
2021-01-29  0:03                 ` [External] : " Drew Adams
2021-01-29  2:43                   ` chad
2021-01-29 19:11                     ` Drew Adams
2021-01-30  5:58                     ` Richard Stallman
2021-02-01 19:50                       ` chad
2021-02-02 21:11                         ` Gregory Heytings
2021-02-05  5:48                           ` Richard Stallman
2021-02-05  8:37                             ` Gregory Heytings
2021-02-05  8:58                               ` Juri Linkov
2021-02-05  9:34                                 ` Gregory Heytings
2021-02-06 19:25                                   ` Juri Linkov
2021-02-06 20:27                                     ` Gregory Heytings
2021-02-06 21:30                                       ` Stefan Monnier
2021-02-06 23:22                                         ` Ergus via Emacs development discussions.
2021-02-07 18:54                                       ` Juri Linkov
2021-02-03  5:51                         ` [External] : " Richard Stallman
2021-02-03 20:38                           ` chad
2021-02-04  5:44                             ` Richard Stallman
2021-02-04 19:24                               ` chad
2021-01-29  7:54                   ` Gregory Heytings
2021-01-29 13:45                     ` Stefan Monnier
2021-01-29 16:56                       ` Óscar Fuentes
2021-01-29 19:12                       ` Drew Adams
2021-01-30 14:13                         ` Gregory Heytings
2021-01-30 20:47                           ` [External] : " Drew Adams
2021-01-31  1:06                             ` Gregory Heytings
2021-01-31 17:39                               ` Drew Adams [this message]
2021-01-31 23:12                                 ` Gregory Heytings
2021-01-31 23:53                                   ` [External] : " Drew Adams
2021-02-01  6:11                                   ` Richard Stallman
2021-01-30 14:13                       ` Gregory Heytings
2021-02-01 17:09               ` Yuan Fu
2021-01-29  2:38             ` chad
2021-01-29  8:44               ` Juri Linkov
2021-01-25 17:27   ` Jose E. Marchesi
2021-01-25 21:12 ` Sean Whitton
2021-01-27 21:46 ` Gregory Heytings
2021-01-31  7:06 ` Teemu Likonen
2021-01-31 17:32   ` [External] : " Drew Adams
2021-01-31 17:49     ` Alan Mackenzie
2021-01-31 18:37       ` Drew Adams
2021-01-31 18:10   ` Howard Melman
2021-02-01 17:21   ` Juri Linkov
2021-02-02 19:44     ` Sean Whitton
2021-02-03 17:20       ` Juri Linkov
2021-02-08  7:13 ` Jefferson Carpenter
2021-02-09  6:05   ` Richard Stallman

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=SA2PR10MB447445C6EB7403363B7C04BFF3B79@SA2PR10MB4474.namprd10.prod.outlook.com \
    --to=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    --cc=gregory@heytings.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).