all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Drew Adams <drew.adams@oracle.com>,
	Dmitry Gutov <dmitry@gutov.dev>,
	Yuri Khan <yuri.v.khan@gmail.com>
Cc: Juri Linkov <juri@linkov.net>,
	Daniel Colascione <dancol@dancol.org>,
	Stefan Kangas <stefankangas@gmail.com>,
	Stefan Monnier <monnier@iro.umontreal.ca>,
	"emacs-devel@gnu.org" <emacs-devel@gnu.org>
Subject: RE: [External] : Re: Proposal: new default bindings for winner and windmove
Date: Tue, 2 Jul 2024 22:30:44 +0000	[thread overview]
Message-ID: <SJ0PR10MB548882DC2325426DE3047A87F3DC2@SJ0PR10MB5488.namprd10.prod.outlook.com> (raw)
In-Reply-To: <SJ0PR10MB5488A40DF1A127A153F1A7A5F3DC2@SJ0PR10MB5488.namprd10.prod.outlook.com>

Apropos using something like Icicles for
cycling and choosing (and there are other
frameworks besides Icicles - even vanilla
Emacs offers enough to get the job done):

Q: Why is completion superior to cycling for
accessing different choices?

1. You can cycle (duh).
2. You can filter, reducing the choice space
   (including the cycling space) on the fly.
3. You can access choices directly (what we
   used to call "random access").
4. You can see/show additional, related info
   about individual candidates (or groups of
   candidates).
5. You can sort candidates in different ways,
   which means changing the eyeball-searching
   order and the cycling order.
6. A single, command-specific key to initiate,
   but can stick to the same (e.g. standard)
   keys for cycling/choosing.  IOW, only the
   initial key need be different (acts like a
   prefix key).

#6 means:

Instead of N key sequences for cycling among
(1) buffers, (2) windows, ... (N) whatevers,
you just need a single key (simple or complex
- doesn't really matter) for each such command.

No need to dedicate N key sequences to such
things, arguing over whether this or that
really deserves a default binding etc.

Regardless of what windmove, winner, winslow,
winthrop, windchill, wince, windbreaker,
windhover, windjammer, windsurfer, windmill,
or ... actually does, consider giving it a
_completion_ UI instead.  Not knowing the
particulars, I'm guessing you'd win bigtime
- see #1-6, above.
___

"Cycling Completions", here:

https://www.emacswiki.org/emacs/Icicles_-_Cycling_Completions

says this about thinking that cycling is only
about #1:

 Do not become a cycling drone!  Input some text
 to narrow the set of candidates, before cycling
 among them to choose one.  This is a good habit
 to adopt, generally, in Icicles.  Most of the
 power of Icicles comes in your ability to filter
 a set of candidates...

 Cycling and filtering work hand in hand.  If the
 set of candidates is small to begin with, then
 just cycling might be quick enough – that's the
 case if you move among a small set of buffers,
 for instance.  But with Icicles you can profitably
 use cycling on even a very large set of candidates
 – by filtering the set first.

(#1-6 are not only about Icicles, per se.  It's
about leveraging _completion_.)
___

Q: When is completion _not_ a better way to cycle?

A: When it's about incrementing/decrementing
something, not choosing among named things.

For that, one general library is Do Re Mi:

https://www.emacswiki.org/emacs/DoReMi

(I assume there are other general libraries for
this kind of thing.)

From that page:

 In case you’re interested, here’s how the idea
 of Do Re Mi came to me.  I had ‘C-M-’ up, down, 
 left, and right arrow keys assigned to commands 
 ‘shrink-frame’, ‘enlarge-frame’,
 ‘shrink-frame-horizontally’, and
 ‘enlarge-frame-horizontally’ from library
 frame-cmds.el.

 But then I saw a use for another command that
 could also be usefully bound to an arrow key to
 take advantage of press-and-hold for incremental
 change of some kind.

 And another.

 My key combinations with the arrow keys being
 limited, it occurred to me that I needed a key
 sequence (command) that would put me in a mode
 where the arrow keys would be temporarily bound
 to some (repeatable) action.

[ Maybe a bit like transient.el, or repeat-mode,
  or this function that I use a lot to repeatify
  a given command:

  (defun repeat-command (command)
    "Repeat COMMAND."
    (require 'repeat)
    (let ((repeat-previous-repeated-command  command)
          (repeat-message-function           #'ignore)
          (last-repeatable-command           'repeat))
      (repeat nil))))
]

  reply	other threads:[~2024-07-02 22:30 UTC|newest]

Thread overview: 247+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-21 19:10 Proposal: new default bindings for winner and windmove Daniel Colascione
2021-08-21 19:23 ` Eli Zaretskii
2021-08-21 19:27   ` Daniel Colascione
2021-08-21 19:36     ` Eli Zaretskii
2021-08-22  8:35       ` Juri Linkov
2021-08-21 19:42   ` Clément Pit-Claudel
2021-08-25 13:12     ` Kaushal Modi
2021-08-21 20:20   ` Arthur Miller
2021-08-22  6:02     ` Eli Zaretskii
2021-08-22  8:32       ` Arthur Miller
2021-08-22 13:43         ` [External] : " Drew Adams
2021-08-22  0:43   ` Phil Sainty
2021-08-22  5:13   ` Teemu Likonen
2021-08-22  9:22     ` Teemu Likonen
2021-08-21 19:26 ` Arthur Miller
2021-08-22  8:37 ` Juri Linkov
2021-08-22 14:05   ` Arthur Miller
2021-08-22 19:16   ` Daniel Colascione
2021-08-22 17:52 ` Stefan Monnier
2021-08-22 22:01   ` Lars Ingebrigtsen
2021-08-23  5:16     ` Bozhidar Batsov
2021-08-24 21:33       ` Stefan Monnier
2021-08-25  3:42       ` Richard Stallman
2024-06-21 19:03   ` Stefan Monnier
2024-06-21 20:39     ` Stefan Kangas
2024-06-23 10:05       ` Alan Mackenzie
2024-06-23 11:14         ` Daniel Colascione
2024-06-23 12:05           ` Alan Mackenzie
2024-06-23 12:30             ` Stefan Kangas
2024-06-23 13:29               ` Alan Mackenzie
2024-06-23 13:34                 ` Daniel Colascione
2024-06-23 13:45                 ` Eli Zaretskii
2024-06-23 20:55                   ` chad
2024-06-23 16:32               ` [External] : " Drew Adams
2024-06-23 12:57             ` Daniel Colascione
2024-06-23 13:40               ` Po Lu
2024-06-23 13:45                 ` Daniel Colascione
2024-06-23 14:15                   ` Po Lu
2024-06-23 14:22                     ` Eli Zaretskii
2024-06-24  7:41                       ` Gregor Zattler
2024-06-24 12:13                         ` Daniel Colascione
2024-06-24 12:41                         ` Eli Zaretskii
2024-06-24 15:09                           ` Gregor Zattler
2024-06-24 15:36                             ` Eli Zaretskii
2024-06-25  1:41                               ` Joel Reicher
2024-06-24 15:57                       ` Petteri Hintsanen
2024-06-25 21:26                       ` Jeremy Bryant
2024-06-26 11:23                         ` Eli Zaretskii
2024-06-26 11:44                           ` Daniel Colascione
2024-06-26 13:19                             ` Eli Zaretskii
2024-06-26 13:57                               ` Daniel Colascione
2024-06-26 15:38                                 ` Eli Zaretskii
2024-06-26 15:49                                   ` Daniel Colascione
2024-06-28 19:47                                 ` Hovav Shacham
2024-06-28 20:45                                   ` [External] : " Drew Adams
2024-06-29  7:02                                     ` Eli Zaretskii
2024-07-01  1:58                                   ` Stefan Kangas
2024-06-26 13:22                             ` Alan Mackenzie
2024-06-26 13:51                               ` Daniel Colascione
2024-06-26 14:13                                 ` Po Lu
2024-06-26 14:21                                   ` Daniel Colascione
2024-06-26 15:15                                     ` Po Lu
2024-06-26 15:27                                       ` Alan Mackenzie
2024-06-26 15:42                                       ` Colin Baxter
2024-06-26 16:00                                         ` Eli Zaretskii
2024-06-26 14:41                                   ` Joel Reicher
2024-06-26 15:43                                   ` Eli Zaretskii
2024-06-26 14:49                                 ` Alan Mackenzie
2024-06-26 17:02                                 ` [External] : " Drew Adams
2024-06-26 14:27                               ` Stefan Monnier
2024-06-26 15:14                                 ` Alan Mackenzie
2024-06-26 13:53                             ` Po Lu
2024-06-26 14:18                               ` Daniel Colascione
2024-06-26 14:48                                 ` Po Lu
2024-06-26 14:27                               ` Stefan Monnier
2024-06-26 14:51                                 ` Po Lu
2024-06-26 15:01                                 ` Alan Mackenzie
2024-06-27 15:35                                 ` Augusto Stoffel
2024-06-26 17:02                               ` [External] : " Drew Adams
2024-07-02  6:28                       ` Visuwesh
2024-06-23 14:28                     ` Daniel Colascione
2024-06-23 14:37                       ` Po Lu
2024-06-23 14:45                         ` Daniel Colascione
2024-06-24 10:35                       ` Joel Reicher
2024-06-23 16:32                   ` [External] : " Drew Adams
2024-06-23 13:48                 ` Daniel Colascione
2024-06-23 14:14                   ` Telemetry, opt-in,opt-out [was: Proposal: new default bindings for winner and windmove] tomas
2024-06-23 14:18                     ` Daniel Colascione
2024-06-23 15:23                       ` Stefan Kangas
2024-06-23 15:34                         ` tomas
2024-06-23 19:46                     ` Stefan Monnier
2024-06-23 21:12                       ` [External] : " Drew Adams
2024-06-25 14:28                         ` [External] : Re: Telemetry, opt-in, opt-out " Madhu
2024-06-25 17:19                           ` Drew Adams
2024-06-25 23:03                           ` Dr. Arne Babenhauserheide via Emacs development discussions.
2024-06-28  4:02                           ` Richard Stallman
2024-06-28  5:28                       ` Telemetry, opt-in,opt-out " Ihor Radchenko
2024-06-28  6:33                         ` tomas
2024-06-23 14:25                   ` Proposal: new default bindings for winner and windmove Po Lu
2024-06-23 14:38                     ` Daniel Colascione
2024-06-23 15:24                 ` Stefan Kangas
2024-06-23 15:36                   ` Eli Zaretskii
2024-06-23 16:32                 ` [External] : " Drew Adams
2024-06-23 19:10                 ` Gregor Zattler
2024-06-23 13:59               ` Alan Mackenzie
2024-06-23 14:06                 ` Daniel Colascione
2024-06-23 16:32               ` [External] : " Drew Adams
2024-06-23 18:44         ` Eli Zaretskii
2024-06-23 18:51           ` Daniel Colascione
2024-06-23 19:26             ` Eli Zaretskii
2024-06-23 19:34               ` Eli Zaretskii
2024-06-23 19:55                 ` Stefan Monnier
2024-06-23 21:12                 ` [External] : " Drew Adams
2024-06-23 20:07               ` Dmitry Gutov
2024-06-23 21:12                 ` [External] : " Drew Adams
2024-06-23 21:09               ` Drew Adams
2024-06-23 19:52           ` Stefan Monnier
2024-06-23 20:07             ` Dmitry Gutov
2024-06-23 20:23             ` Stefan Kangas
2024-06-23 21:12             ` [External] : " Drew Adams
2024-06-24  2:28             ` Eli Zaretskii
2024-06-24 10:41               ` Dmitry Gutov
2024-06-24 11:45                 ` Po Lu
2024-06-25  2:26                 ` Eli Zaretskii
2024-06-24  3:29       ` Philip Kaludercic
2024-06-24  4:23         ` [External] : " Drew Adams
2024-06-24  7:18           ` Philip Kaludercic
2024-06-24 14:46             ` Drew Adams
2024-06-24  6:32         ` Juri Linkov
2024-06-26 15:48       ` Stefan Monnier
2024-06-26 20:38         ` Alan Mackenzie
2024-06-27  5:16           ` Attitude (was: Proposal: new default bindings for winner and windmove) Eli Zaretskii
2024-06-27 12:19             ` Alan Mackenzie
2024-07-01  1:29         ` Proposal: new default bindings for winner and windmove Stefan Kangas
2024-07-01 10:07           ` Alan Mackenzie
2024-07-01 10:47             ` Po Lu
2024-07-01 11:12               ` Dmitry Gutov
2024-07-01 13:20                 ` Po Lu
2024-07-01 18:21                   ` Dmitry Gutov
2024-07-02  0:52                     ` Po Lu
2024-07-01 11:25             ` Dmitry Gutov
2024-07-01 13:28               ` Po Lu
2024-07-01 13:34                 ` Eli Zaretskii
2024-07-01 19:05                 ` Dmitry Gutov
2024-07-01 21:24               ` Alan Mackenzie
2024-07-01 22:07                 ` Daniel Colascione
2024-07-02  1:00                   ` Po Lu
2024-07-02  3:26                     ` C-o (was: Proposal: new default bindings for winner and windmove) Stefan Monnier
2024-07-02  4:34                       ` C-o Po Lu
2024-07-02  5:59                       ` C-o Gerd Möllmann
2024-07-02  6:23                       ` C-o Visuwesh
2024-07-02 12:51                       ` C-o Dmitry Gutov
2024-07-02 13:06                         ` C-o Po Lu
2024-07-02 13:39                           ` C-o Eli Zaretskii
2024-07-02 14:02                             ` C-o Alfred M. Szmidt
2024-07-03  9:24                             ` C-o Po Lu
2024-07-03 11:33                               ` C-o Eli Zaretskii
2024-07-03 12:15                                 ` C-o Po Lu
2024-07-02 14:02                       ` C-o T.V Raman
2024-07-02 15:36                         ` C-o Alfred M. Szmidt
2024-07-02 22:27                       ` C-o Michael Heerdegen via Emacs development discussions.
2024-07-02 22:31                       ` C-o (was: Proposal: new default bindings for winner and windmove) Stefan Kangas
2024-07-02 22:44                       ` C-o Jeremy Bryant
2024-07-03 10:07                       ` C-o (was: Proposal: new default bindings for winner and windmove) Per Starbäck
2024-07-03 12:48                         ` C-o Howard Melman
2024-07-03 16:24                           ` C-o Yuri Khan
2024-07-03 16:32                             ` C-o Howard Melman
2024-07-05  4:14                               ` C-o Richard Stallman
2024-07-05  4:28                                 ` C-o Howard Melman
2024-07-03 19:13                           ` C-o Bob Rogers
2024-07-02  7:28                   ` Proposal: new default bindings for winner and windmove Philip Kaludercic
2024-07-02 11:41                   ` Eli Zaretskii
2024-07-02  1:01                 ` Dmitry Gutov
2024-07-02  1:51                   ` [External] : " Drew Adams
2024-07-02  2:20                     ` Dmitry Gutov
2024-07-02  3:47                       ` Drew Adams
2024-07-02 22:41                   ` Stefan Kangas
2024-07-02  1:47                 ` [External] : " Drew Adams
     [not found]                 ` <87h6d87op5.fsf@dancol.org>
2024-07-02 13:08                   ` Alan Mackenzie
2024-07-01 14:43             ` [External] : " Drew Adams
2024-07-01 18:12               ` [External] : Re: Proposal: new default bindings for windmove. [Working minor mode] Alan Mackenzie
2024-07-01 18:18                 ` Eli Zaretskii
2024-07-04  2:26             ` Proposal: new default bindings for winner and windmove Richard Stallman
2024-07-01 23:18           ` Daniel Colascione
2024-07-02  1:02             ` Po Lu via Emacs development discussions.
2024-07-02  2:03               ` Howard Melman
2024-07-02 12:21                 ` Eli Zaretskii
2024-07-02  3:29               ` Stefan Monnier
2024-07-02  4:14                 ` Po Lu
2024-07-02 13:04                   ` Stefan Monnier
2024-07-02 13:36                     ` Eli Zaretskii
2024-07-02 14:20                       ` Stefan Monnier
2024-07-02 14:43                         ` Eli Zaretskii
2024-07-02 12:18               ` Eli Zaretskii
2024-07-02 12:52                 ` Daniel Colascione
2024-07-02 13:34                   ` Eli Zaretskii
2024-07-02 13:53                     ` Daniel Colascione
2024-07-02 14:15                       ` Eli Zaretskii
2024-07-02 14:41                         ` Daniel Colascione
2024-07-02 15:00                           ` Eli Zaretskii
2024-07-02 22:28                 ` Dmitry Gutov
2024-07-03  3:14                   ` Hovav Shacham
2024-07-02  6:50             ` Juri Linkov
2024-07-02  8:07               ` Yuri Khan
2024-07-02 16:27                 ` Juri Linkov
2024-07-02 11:50               ` Daniel Colascione
2024-07-02 16:32                 ` Juri Linkov
2024-07-02 16:47                   ` Daniel Colascione
2024-07-02 12:46               ` Eli Zaretskii
2024-07-02 13:31               ` Alfred M. Szmidt
2024-07-02 18:03               ` Dmitry Gutov
2024-07-02 18:07                 ` Alfred M. Szmidt
2024-07-02 18:29                 ` Eli Zaretskii
2024-07-02 18:30                 ` Yuri Khan
2024-07-02 20:00                   ` Dmitry Gutov
2024-07-02 21:15                     ` [External] : " Drew Adams
2024-07-02 22:30                       ` Drew Adams [this message]
2024-07-03 11:56                     ` Yuri Khan
2024-07-03 13:53                       ` Stefan Monnier
2024-07-03 14:14                         ` Dmitry Gutov
2024-07-03 16:15                         ` Yuri Khan
2024-07-03 16:26                           ` Daniel Colascione
2024-07-03 22:12                             ` John ff
2024-07-02 18:34                 ` Alan Mackenzie
2024-07-02 19:08                   ` [External] : " Drew Adams
2024-07-02 19:53                   ` Dmitry Gutov
2024-07-02 20:12                     ` Alan Mackenzie
2024-07-02 21:13                       ` Daniel Colascione
2024-07-03  6:21                         ` Juri Linkov
2024-07-02 21:54                       ` Dmitry Gutov
2024-07-02 18:37                 ` Juri Linkov
2024-07-02 20:03                   ` Dmitry Gutov
2024-07-03  6:24                     ` Juri Linkov
2024-07-03 13:48                       ` Stefan Monnier
2024-07-03  6:56                 ` Visuwesh
2024-07-02  7:08             ` Philip Kaludercic
2024-07-02 11:46               ` Daniel Colascione
2024-07-02 13:31                 ` Alan Mackenzie
2024-07-02 13:52                   ` Dmitry Gutov
2024-07-02 13:55                   ` Daniel Colascione
2024-07-02 14:42                     ` Alan Mackenzie
2024-07-02 15:36                     ` Alfred M. Szmidt
2024-07-02 11:57             ` Eli Zaretskii
2024-07-02 23:20             ` Stefan Kangas
2024-07-03  1:19             ` Liu Hui
2024-06-23  6:59     ` Juri Linkov
2021-08-22 18:58 ` Dmitry Gutov

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=SJ0PR10MB548882DC2325426DE3047A87F3DC2@SJ0PR10MB5488.namprd10.prod.outlook.com \
    --to=drew.adams@oracle.com \
    --cc=dancol@dancol.org \
    --cc=dmitry@gutov.dev \
    --cc=emacs-devel@gnu.org \
    --cc=juri@linkov.net \
    --cc=monnier@iro.umontreal.ca \
    --cc=stefankangas@gmail.com \
    --cc=yuri.v.khan@gmail.com \
    /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.