From: Heime via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Drew Adams <drew.adams@oracle.com>
Cc: Eli Zaretskii <eliz@gnu.org>,
"65348@debbugs.gnu.org" <65348@debbugs.gnu.org>
Subject: bug#65348: INITIAL-INPUT in completing-read repeats same entry twice consecutively
Date: Sat, 19 Aug 2023 01:55:14 +0000 [thread overview]
Message-ID: <ipKqi4aDq3yIJlA6LHAGhcnv1cEgNzBIWtEsNEfpEkcoMMEH52_04tpYFXaB3L-rErkJoRVVuDlWy2xnCSmn6NhiT7K81RLpydMRpnOHXCI=@protonmail.com> (raw)
In-Reply-To: <SJ0PR10MB5488DEB7D60756DBDEF965C5F31BA@SJ0PR10MB5488.namprd10.prod.outlook.com>
------- Original Message -------
On Saturday, August 19th, 2023 at 9:03 AM, Drew Adams <drew.adams@oracle.com> wrote:
> > > Cycling can be helpful for accessing COLLECTION
> > > matches or for accessing history elements. But
> > > cycling is an inherently dumb, inefficient way
> > > to find a needle in a haystack. A magnet works
> > > better than checking each bit of hay in turn.
> >
> > I use completing-read so I do not have to remember
> > collection matches.
>
>
> "Remember collection matches?"
> No idea what you're on about, there.
>
> The point is that cycling among `completing-read' completion candidates, just like cycling among` completing-read' history elements, is a slow,
> single-step, brute-force way to access choices.
> If there are many candidates then it becomes a
> ridiculous way to get what you want. In that case
> you're far better off filtering the candidates.
>
> When you use `completing-read', you do sometimes
> type some text in the minibuffer, to filter the
> choices, don't you? Why do you do that, instead
> of just cycling blindly among ALL the candidates
> in the domain (COLLECTION)? Because it's stupid
> & slow to cycle when there are zillions of choices.
>
> M-x TAB <down> <down> <down> <down> <down>...
>
> You DON'T do that to enter a command, do you? I
> truly hope you type some text before hitting TAB.
I do actually and without hitting TAB. Did not know about that
trick.
> The same thing applies to accessing a choice among
> any set of candidates, whether it's completions,
> history elements, query-replace matches,...
>
> Filtering is far more efficient than cycling
> when the set of candidates is large. Emacs makes
> a point of giving users ways to filter instead of
> just checking each blade of straw to see if it
> might be a needle.
>
> Filter first, well, and often, and it will boost
> the value of cycling. Same for sorting: sort
> well and you needn't cycle much. Cycling on its
> own is like reading a novel one letter at a time.
I like to categorise rather than sort.
> Cycling is the last thing to do, after you've
> narrowed the selection down to a few choices and
> if it's more trouble than it's worth to narrow it
> down to a single choice by filtering further.
>
> If you can present the choices in a good order
> (sorting) then it might not matter how many there
> are, because you have, in effect, narrowed the
> choices down to those at the start of the list.
>
> Being able to sort completion candidates on the
> fly is powerful, as is being able to filter them
> on the fly - and to filter again and again, with
> different criteria/patterns.
>
> Vanilla Emacs doesn't offer filtering again and
> again; and it doesn't offer sorting on the fly.
> It should offer both.
It should as you say.
> https://www.emacswiki.org/emacs/Icicles_-_Nutshell_View#ProgressiveCompletion
>
> https://www.emacswiki.org/emacs/Icicles_-_Sorting_Candidates
>
> https://www.emacswiki.org/emacs/Icicles_-_Sorting_Candidates#screenshots
next prev parent reply other threads:[~2023-08-19 1:55 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-17 0:47 bug#65348: INITIAL-INPUT in completing-read repeats same entry twice consecutively Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-17 5:49 ` Eli Zaretskii
2023-08-17 6:05 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-17 7:20 ` Eli Zaretskii
2023-08-17 10:27 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-17 10:45 ` Eli Zaretskii
2023-08-18 0:35 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 1:47 ` Drew Adams
2023-08-18 3:49 ` Eli Zaretskii
2023-08-18 5:13 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 5:36 ` Eli Zaretskii
2023-08-18 5:56 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 6:32 ` Eli Zaretskii
2023-08-18 8:40 ` uzibalqa via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 12:14 ` Eli Zaretskii
2023-08-18 12:27 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 12:30 ` Eli Zaretskii
2023-08-18 12:55 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 13:27 ` Eli Zaretskii
2023-08-18 13:36 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 15:23 ` Drew Adams
2023-08-18 15:16 ` Drew Adams
2023-08-18 15:43 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 17:33 ` Drew Adams
2023-08-18 19:12 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 21:03 ` Drew Adams
2023-08-19 1:55 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2023-08-19 2:34 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-19 4:14 ` Drew Adams
2023-08-19 4:22 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-19 4:46 ` Drew Adams
2023-08-19 5:05 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-19 6:34 ` Eli Zaretskii
2023-08-19 16:20 ` Drew Adams
2023-08-19 19:19 ` Eli Zaretskii
2023-08-19 20:56 ` Drew Adams
2023-08-20 16:39 ` Juri Linkov
2023-08-21 0:23 ` Drew Adams
2023-08-21 4:34 ` Christopher Dimech
2023-08-20 5:42 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-20 6:12 ` Michael Heerdegen
2023-08-20 6:23 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-20 6:34 ` Christopher Dimech
2023-08-21 0:25 ` Drew Adams
2023-08-21 4:26 ` bug#65348: RE: [External] : " Christopher Dimech
2023-08-21 5:23 ` Drew Adams
2023-08-21 6:29 ` Christopher Dimech
2023-08-21 7:21 ` bug#65348: " Christopher Dimech
2023-08-21 11:40 ` Eli Zaretskii
2023-08-21 12:07 ` Christopher Dimech
2023-08-21 12:25 ` Eli Zaretskii
2023-08-21 13:27 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-21 16:08 ` Drew Adams
2023-08-18 19:45 ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18 21:07 ` Drew Adams
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='ipKqi4aDq3yIJlA6LHAGhcnv1cEgNzBIWtEsNEfpEkcoMMEH52_04tpYFXaB3L-rErkJoRVVuDlWy2xnCSmn6NhiT7K81RLpydMRpnOHXCI=@protonmail.com' \
--to=bug-gnu-emacs@gnu.org \
--cc=65348@debbugs.gnu.org \
--cc=drew.adams@oracle.com \
--cc=eliz@gnu.org \
--cc=heimeborgia@protonmail.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 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).