Subject: bug#77253: 30.1.50; Support RET choosing the selected completion without rebinding arrow keys

From: Spencer Baugh <[email-masked]>
Date: Tue, 25 Mar 2025 13:25:09 -0400

Juri Linkov <[email-masked]> writes:
>> Right now, minibuffer-visible-completions does two things, only when
>> *Completions* is visible:
>>
>> A. If there's a selected completion candidate, RET exits the minibuffer
>> with it.
>>
>> B. The arrow keys move point in the *Completions* buffer instead of the
>> minibuffer, to select completion candidates.
>>
>> These are really two separate things.
>>
>> A is a nice behavior for novice users, but B is difficult for novice
>> users (who like to use the arrow keys for moving point) to deal with.
>
> Not sure why this would be difficult for novice users,

Well, because they like using the arrow keys. :)

> but maybe adding a new value to the existing defcustom
> minibuffer-visible-completions would be sufficient?

That would work, but I guess I also propose that we should change the
implementation a bit.  The use of a menu-item :filter binding is clever,
but I think it would be nicer to have a normal binding for RET which
just checks if *Completions* is shown/a completion candidate is
selected.  For one thing, then C-h k RET will behave more expectedly.