* master f6967d2 1/3: Allow for the completion buffer to be automatically selected
[not found] <m1sfulwmqp.fsf.ref@yahoo.es>
@ 2021-12-21 23:40 ` Daniel Martín
2021-12-22 8:58 ` Juri Linkov
` (2 more replies)
0 siblings, 3 replies; 18+ messages in thread
From: Daniel Martín @ 2021-12-21 23:40 UTC (permalink / raw)
To: emacs-devel; +Cc: philipk
I don't think I like this change to the minibuffer defaults. It breaks
muscle memory and IMO is more incovenient when you need to show the
completion list many times.
One typical workflow I have is doing something like C-x C-f TAB TAB to
see the list of completions and then continue typing to narrow the list
of completions. After this commit, you need to switch back to the
minibuffer to continue completing things, which is annoying.
I'd prefer that the new setting completion-auto-select is not enabled by
default. What do other people think?
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-21 23:40 ` master f6967d2 1/3: Allow for the completion buffer to be automatically selected Daniel Martín
@ 2021-12-22 8:58 ` Juri Linkov
2021-12-22 9:27 ` Po Lu
2021-12-22 9:48 ` tomas
2021-12-22 13:48 ` Philip Kaludercic
2021-12-22 19:39 ` Theodor Thornhill
2 siblings, 2 replies; 18+ messages in thread
From: Juri Linkov @ 2021-12-22 8:58 UTC (permalink / raw)
To: Daniel Martín; +Cc: philipk, emacs-devel
> I don't think I like this change to the minibuffer defaults. It breaks
> muscle memory and IMO is more incovenient when you need to show the
> completion list many times.
But now it works exactly like in other apps. For example, open a new
browser tab, and it immediately switches focus to its completion list
where you can select a completion candidate with arrow keys. Now Emacs
does the same.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 8:58 ` Juri Linkov
@ 2021-12-22 9:27 ` Po Lu
2021-12-22 11:07 ` Lars Ingebrigtsen
2021-12-22 17:59 ` Juri Linkov
2021-12-22 9:48 ` tomas
1 sibling, 2 replies; 18+ messages in thread
From: Po Lu @ 2021-12-22 9:27 UTC (permalink / raw)
To: Juri Linkov; +Cc: Daniel Martín, philipk, emacs-devel
Juri Linkov <juri@linkov.net> writes:
> But now it works exactly like in other apps.
[...]
> For example, open a new browser tab, and it immediately switches focus
> to its completion list where you can select a completion candidate
> with arrow keys. Now Emacs does the same.
In other apps, you can continue typing even when a completion candidate
is selected.
Not so in Emacs.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 8:58 ` Juri Linkov
2021-12-22 9:27 ` Po Lu
@ 2021-12-22 9:48 ` tomas
1 sibling, 0 replies; 18+ messages in thread
From: tomas @ 2021-12-22 9:48 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 648 bytes --]
On Wed, Dec 22, 2021 at 10:58:43AM +0200, Juri Linkov wrote:
> > I don't think I like this change to the minibuffer defaults. It breaks
> > muscle memory and IMO is more incovenient when you need to show the
> > completion list many times.
>
> But now it works exactly like in other apps. For example, open a new
> browser tab, and it immediately switches focus to its completion list
> where you can select a completion candidate with arrow keys. Now Emacs
> does the same.
Which I, personally, hate with passion (even though you can continue
typing, as Po Lu notes in this thread).
But hey, that's browsers.
Cheers
--
t
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 9:27 ` Po Lu
@ 2021-12-22 11:07 ` Lars Ingebrigtsen
2021-12-22 17:59 ` Juri Linkov
1 sibling, 0 replies; 18+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-22 11:07 UTC (permalink / raw)
To: Po Lu; +Cc: philipk, Daniel Martín, emacs-devel, Juri Linkov
Po Lu <luangruo@yahoo.com> writes:
>> For example, open a new browser tab, and it immediately switches focus
>> to its completion list where you can select a completion candidate
>> with arrow keys. Now Emacs does the same.
>
> In other apps, you can continue typing even when a completion candidate
> is selected.
Yeah, the new behaviour would be better if you could continue typing.
It's too awkward currently.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-21 23:40 ` master f6967d2 1/3: Allow for the completion buffer to be automatically selected Daniel Martín
2021-12-22 8:58 ` Juri Linkov
@ 2021-12-22 13:48 ` Philip Kaludercic
2021-12-22 17:45 ` Juri Linkov
2021-12-22 19:39 ` Theodor Thornhill
2 siblings, 1 reply; 18+ messages in thread
From: Philip Kaludercic @ 2021-12-22 13:48 UTC (permalink / raw)
To: Daniel Martín; +Cc: emacs-devel
Daniel Martín <mardani29@yahoo.es> writes:
> I don't think I like this change to the minibuffer defaults. It breaks
> muscle memory and IMO is more incovenient when you need to show the
> completion list many times.
>
> One typical workflow I have is doing something like C-x C-f TAB TAB to
> see the list of completions and then continue typing to narrow the list
> of completions. After this commit, you need to switch back to the
> minibuffer to continue completing things, which is annoying.
Understandable, enabling the options by default is just an experiment
for now to gather feedback.
What would you think about completion-auto-select could also be set to a
number, indicating how many non-completions have to be made before
*Completions* is selected?
> I'd prefer that the new setting completion-auto-select is not enabled by
> default. What do other people think?
--
Philip Kaludercic
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 13:48 ` Philip Kaludercic
@ 2021-12-22 17:45 ` Juri Linkov
2021-12-22 20:02 ` Philip Kaludercic
0 siblings, 1 reply; 18+ messages in thread
From: Juri Linkov @ 2021-12-22 17:45 UTC (permalink / raw)
To: Philip Kaludercic; +Cc: emacs-devel, Daniel Martín
> What would you think about completion-auto-select could also be set to a
> number, indicating how many non-completions have to be made before
> *Completions* is selected?
So when completion-auto-select is 1 then select the completions buffer on
the first TAB? When 2, then the second TAB will select it instead of
starting to scroll the completions buffer. But I don't think anyone might
want to customize it to a number more than 2.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 9:27 ` Po Lu
2021-12-22 11:07 ` Lars Ingebrigtsen
@ 2021-12-22 17:59 ` Juri Linkov
1 sibling, 0 replies; 18+ messages in thread
From: Juri Linkov @ 2021-12-22 17:59 UTC (permalink / raw)
To: Po Lu; +Cc: philipk, emacs-devel, Daniel Martín
>> For example, open a new browser tab, and it immediately switches focus
>> to its completion list where you can select a completion candidate
>> with arrow keys. Now Emacs does the same.
>
> In other apps, you can continue typing even when a completion candidate
> is selected.
True (although navigating in completions inserts every navigated completion
to their minibuffer, thus replacing the initial contents, this could be
optional in Emacs).
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-21 23:40 ` master f6967d2 1/3: Allow for the completion buffer to be automatically selected Daniel Martín
2021-12-22 8:58 ` Juri Linkov
2021-12-22 13:48 ` Philip Kaludercic
@ 2021-12-22 19:39 ` Theodor Thornhill
2021-12-22 21:18 ` Daniel Martín
2 siblings, 1 reply; 18+ messages in thread
From: Theodor Thornhill @ 2021-12-22 19:39 UTC (permalink / raw)
To: Daniel Martín, emacs-devel; +Cc: philipk
Daniel Martín <mardani29@yahoo.es> writes:
> I don't think I like this change to the minibuffer defaults. It breaks
> muscle memory and IMO is more incovenient when you need to show the
> completion list many times.
>
Sorry for my ignorance, (and partly offtopic question) but why would you
want to show the completion list many times? Isn't that very slow when
moving around files?
> One typical workflow I have is doing something like C-x C-f TAB TAB to
> see the list of completions and then continue typing to narrow the list
> of completions. After this commit, you need to switch back to the
> minibuffer to continue completing things, which is annoying.
>
This feels very inefficient. Wouldn't it be faster just having the
completion candidates open, then narrowing? I have always found the
default emacs completion system very arcane, but I might be missing
something.
Theo
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 17:45 ` Juri Linkov
@ 2021-12-22 20:02 ` Philip Kaludercic
2021-12-23 6:34 ` Eli Zaretskii
2021-12-23 17:23 ` Juri Linkov
0 siblings, 2 replies; 18+ messages in thread
From: Philip Kaludercic @ 2021-12-22 20:02 UTC (permalink / raw)
To: Juri Linkov; +Cc: emacs-devel, Daniel Martín
Juri Linkov <juri@linkov.net> writes:
>> What would you think about completion-auto-select could also be set to a
>> number, indicating how many non-completions have to be made before
>> *Completions* is selected?
>
> So when completion-auto-select is 1 then select the completions buffer on
> the first TAB? When 2, then the second TAB will select it instead of
> starting to scroll the completions buffer. But I don't think anyone might
> want to customize it to a number more than 2.
Probably true, but if you implement support for 1 and 2, all other
natnums are trivial.
But on second thought, this won't do the job either, since scrolling on
tab and selecting on tab are always in conflict with one another.
--
Philip Kaludercic
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 19:39 ` Theodor Thornhill
@ 2021-12-22 21:18 ` Daniel Martín
2021-12-22 21:30 ` Theodor Thornhill
2021-12-22 23:04 ` Philip Kaludercic
0 siblings, 2 replies; 18+ messages in thread
From: Daniel Martín @ 2021-12-22 21:18 UTC (permalink / raw)
To: Theodor Thornhill; +Cc: emacs-devel, philipk
Theodor Thornhill <theo@thornhill.no> writes:
> Daniel Martín <mardani29@yahoo.es> writes:
>
>> I don't think I like this change to the minibuffer defaults. It breaks
>> muscle memory and IMO is more incovenient when you need to show the
>> completion list many times.
>>
>
> Sorry for my ignorance, (and partly offtopic question) but why would you
> want to show the completion list many times? Isn't that very slow when
> moving around files?
>
>> One typical workflow I have is doing something like C-x C-f TAB TAB to
>> see the list of completions and then continue typing to narrow the list
>> of completions. After this commit, you need to switch back to the
>> minibuffer to continue completing things, which is annoying.
>>
>
> This feels very inefficient. Wouldn't it be faster just having the
> completion candidates open, then narrowing? I have always found the
> default emacs completion system very arcane, but I might be missing
> something.
Many people prefer to use a selection workflow for the minibuffer, yes,
the popularity of packages like ivy, selectrum, ido, icicles, helm,
etc. speak for itself. But on master the implemented solution was more
or less an intermediate one where the completion list was not shown
automatically and the results were not filtered "on the fly". IMO, that
kind of intermediate solution doesn't help much to attract people used
to that kind of workflow from other applications/Emacs packages, and
only annoy people used to vanilla completion.
Another experiment that might be more successful is to enable an ELPA
package like mct[1] by default, and offer a single option to revert to
the default minibuffer behavior, for people used to vanilla completion.
[1]: https://elpa.gnu.org/packages/mct.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 21:18 ` Daniel Martín
@ 2021-12-22 21:30 ` Theodor Thornhill
2021-12-22 23:04 ` Philip Kaludercic
1 sibling, 0 replies; 18+ messages in thread
From: Theodor Thornhill @ 2021-12-22 21:30 UTC (permalink / raw)
To: Daniel Martín; +Cc: emacs-devel, philipk
Daniel Martín <mardani29@yahoo.es> writes:
>
> Many people prefer to use a selection workflow for the minibuffer, yes,
> the popularity of packages like ivy, selectrum, ido, icicles, helm,
> etc. speak for itself. But on master the implemented solution was more
> or less an intermediate one where the completion list was not shown
> automatically and the results were not filtered "on the fly". IMO, that
> kind of intermediate solution doesn't help much to attract people used
> to that kind of workflow from other applications/Emacs packages, and
> only annoy people used to vanilla completion.
>
Right, I see your point.
> Another experiment that might be more successful is to enable an ELPA
> package like mct[1] by default, and offer a single option to revert to
> the default minibuffer behavior, for people used to vanilla completion.
>
I actually use mct, and have for a while. I like that it is not as
intrusive as the other projects.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 21:18 ` Daniel Martín
2021-12-22 21:30 ` Theodor Thornhill
@ 2021-12-22 23:04 ` Philip Kaludercic
2022-05-31 17:56 ` Juri Linkov
1 sibling, 1 reply; 18+ messages in thread
From: Philip Kaludercic @ 2021-12-22 23:04 UTC (permalink / raw)
To: Daniel Martín; +Cc: Theodor Thornhill, emacs-devel
Daniel Martín <mardani29@yahoo.es> writes:
> But on master the implemented solution was more
> or less an intermediate one where the completion list was not shown
> automatically and the results were not filtered "on the fly". IMO, that
> kind of intermediate solution doesn't help much to attract people used
> to that kind of workflow from other applications/Emacs packages, and
> only annoy people used to vanilla completion.
The motivation was not to attract people from either side, but to fix an
annoyance I had when a string couldn't be expanded, but was not unique.
With completion-auto-select disabled you either have to edit the
minibuffer yourself, or switch to the *Completions* buffer using the
(imo inconvenient) M-v key. The idea is that completion-auto-select and
completion-wrap-movement provide is a method to reduce all completion
operations to a single key (tab), without having to change modifiers.
(Looking back, I understand the change was too radical for the master
branch, though I still think that it is a considerable improvement, and
provides a basis upon which incremental narrowing could be implemented,
without falling for a lot of the issues that other popular "frameworks"
have)
> Another experiment that might be more successful is to enable an ELPA
> package like mct[1] by default, and offer a single option to revert to
> the default minibuffer behavior, for people used to vanilla completion.
I don't see how this is any better or worse than enabling
completion-auto-select by default.
--
Philip Kaludercic
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 20:02 ` Philip Kaludercic
@ 2021-12-23 6:34 ` Eli Zaretskii
2021-12-23 17:23 ` Juri Linkov
1 sibling, 0 replies; 18+ messages in thread
From: Eli Zaretskii @ 2021-12-23 6:34 UTC (permalink / raw)
To: Philip Kaludercic; +Cc: emacs-devel, mardani29, juri
> From: Philip Kaludercic <philipk@posteo.net>
> Date: Wed, 22 Dec 2021 20:02:59 +0000
> Cc: emacs-devel@gnu.org, Daniel Martín <mardani29@yahoo.es>
>
> Juri Linkov <juri@linkov.net> writes:
>
> >> What would you think about completion-auto-select could also be set to a
> >> number, indicating how many non-completions have to be made before
> >> *Completions* is selected?
> >
> > So when completion-auto-select is 1 then select the completions buffer on
> > the first TAB? When 2, then the second TAB will select it instead of
> > starting to scroll the completions buffer. But I don't think anyone might
> > want to customize it to a number more than 2.
>
> Probably true, but if you implement support for 1 and 2, all other
> natnums are trivial.
>
> But on second thought, this won't do the job either, since scrolling on
> tab and selecting on tab are always in conflict with one another.
Indeed, if we ever want to have some of these features turned ON by
default, they cannot be on TAB.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 20:02 ` Philip Kaludercic
2021-12-23 6:34 ` Eli Zaretskii
@ 2021-12-23 17:23 ` Juri Linkov
2021-12-23 18:44 ` [External] : " Drew Adams
1 sibling, 1 reply; 18+ messages in thread
From: Juri Linkov @ 2021-12-23 17:23 UTC (permalink / raw)
To: Philip Kaludercic; +Cc: emacs-devel, Daniel Martín
>>> What would you think about completion-auto-select could also be set to a
>>> number, indicating how many non-completions have to be made before
>>> *Completions* is selected?
>>
>> So when completion-auto-select is 1 then select the completions buffer on
>> the first TAB? When 2, then the second TAB will select it instead of
>> starting to scroll the completions buffer. But I don't think anyone might
>> want to customize it to a number more than 2.
>
> Probably true, but if you implement support for 1 and 2, all other
> natnums are trivial.
>
> But on second thought, this won't do the job either, since scrolling on
> tab and selecting on tab are always in conflict with one another.
Maybe when all completions fit to the buffer, so scrolling is not applicable,
the second TAB could switch to the completions buffer? Or when this might
be unexpected for users, it could be provided as an optional value.
^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [External] : Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-23 17:23 ` Juri Linkov
@ 2021-12-23 18:44 ` Drew Adams
0 siblings, 0 replies; 18+ messages in thread
From: Drew Adams @ 2021-12-23 18:44 UTC (permalink / raw)
To: Juri Linkov, Philip Kaludercic; +Cc: Daniel Martín, emacs-devel@gnu.org
I hesitate to post this, in particular because
I have _not_ at all been following this thread.
[I also don't yet have access to a Emacs 28
pretest MS Windows binary, so I'm pretty far
removed from any development these days. I
fully expect (but I hope not) that when I get
Emacs 28 the behavior of *Completions* and
the minibuffer, especially for a standalone
minibuffer frame, will be completely broken
for my use. (That's already the case for
Emacs 27 - but I retain hope.)]
___
Just in case it helps...here are some comments
(suggestions) about key bindings, based on what
I defined for Icicles.
1. TAB should be for completing. In particular,
it should not be for scrolling *Completions*.
(Vanilla Emacs long ago made it do both of
those. That was long before Emacs supported
any kind of cycling.)
2. C-v and M-v in the minibuffer should scroll
*Completions*. Users know these keys, and
they're a natural choice. In *Completions*,
a mouse wheel should scroll.
Scrolling of *Completions* should wrap around.
(In *Completions*, C-v and M-v also scroll,
but they don't wrap around. The global C-v
and M-v bindings apply there.)
3. TAB can also be for cycling. In Icicles, 2nd
and subsequent TABs cycle. TAB should cycle
whether you're in minibuffer or *Completions*.
Preferably, users should also have other keys,
by default, that only cycle (do not complete).
4. Cycling should wrap around, by default. But
this should be controllable by a user option.
5. It should be easy to move between minibuffer
and *Completions*. A single key can do this.
Icicles uses C-insert, by default.
When moving to *Completions*, C-insert moves
to the current completion candidate there.
When moving to the minibuffer, it inserts the
candidate at point in *Completions* into the
minibuffer, at point.
6. All such key bindings should only be defaults.
Users should be able to change them easily,
without needing to know anything about keymaps
used for the minibuffer and *Completions*.
In Icicles, in practice you seldom move to
*Completions* (i.e., C-insert or mouse-1). You
can do so at any time, but you never need to do
so. Some users might sometimes like to do some
things there with the mouse (a direct-access
pointing device), but though you can, you never
need to.
___
HTH.
My advice is to keep it simple, and to not use a
key such as TAB for both cycling and scrolling.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2021-12-22 23:04 ` Philip Kaludercic
@ 2022-05-31 17:56 ` Juri Linkov
2022-06-03 8:57 ` Philip Kaludercic
0 siblings, 1 reply; 18+ messages in thread
From: Juri Linkov @ 2022-05-31 17:56 UTC (permalink / raw)
To: Philip Kaludercic; +Cc: emacs-devel
> The idea is that completion-auto-select and completion-wrap-movement
> provide is a method to reduce all completion operations to a single
> key (tab), without having to change modifiers.
Every time I customize completion options, first I change
completion-auto-help and completion-auto-select, then spend
time trying to find the third related variable under the same prefix.
Does this suggest it would be better to share the same prefix,
i.e. to name the third variable completion-auto-wrap?
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: master f6967d2 1/3: Allow for the completion buffer to be automatically selected
2022-05-31 17:56 ` Juri Linkov
@ 2022-06-03 8:57 ` Philip Kaludercic
0 siblings, 0 replies; 18+ messages in thread
From: Philip Kaludercic @ 2022-06-03 8:57 UTC (permalink / raw)
To: Juri Linkov; +Cc: emacs-devel
Juri Linkov <juri@linkov.net> writes:
>> The idea is that completion-auto-select and completion-wrap-movement
>> provide is a method to reduce all completion operations to a single
>> key (tab), without having to change modifiers.
>
> Every time I customize completion options, first I change
> completion-auto-help and completion-auto-select, then spend
> time trying to find the third related variable under the same prefix.
> Does this suggest it would be better to share the same prefix,
> i.e. to name the third variable completion-auto-wrap?
I think that would make sense, or at least I would never object to
consistency.
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2022-06-03 8:57 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <m1sfulwmqp.fsf.ref@yahoo.es>
2021-12-21 23:40 ` master f6967d2 1/3: Allow for the completion buffer to be automatically selected Daniel Martín
2021-12-22 8:58 ` Juri Linkov
2021-12-22 9:27 ` Po Lu
2021-12-22 11:07 ` Lars Ingebrigtsen
2021-12-22 17:59 ` Juri Linkov
2021-12-22 9:48 ` tomas
2021-12-22 13:48 ` Philip Kaludercic
2021-12-22 17:45 ` Juri Linkov
2021-12-22 20:02 ` Philip Kaludercic
2021-12-23 6:34 ` Eli Zaretskii
2021-12-23 17:23 ` Juri Linkov
2021-12-23 18:44 ` [External] : " Drew Adams
2021-12-22 19:39 ` Theodor Thornhill
2021-12-22 21:18 ` Daniel Martín
2021-12-22 21:30 ` Theodor Thornhill
2021-12-22 23:04 ` Philip Kaludercic
2022-05-31 17:56 ` Juri Linkov
2022-06-03 8:57 ` Philip Kaludercic
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).