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

From: Spencer Baugh <[email-masked]>
Date: Tue, 25 Mar 2025 11:10:57 -0400

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.

We should make them separately configurable, or at least allow enabling
the RET behavior without the arrow keys behavior.

And with the addition of completion-auto-deselect, the RET behavior is
actually a plausible default behavior: it only takes effect if the user
has manually selected a completion candidate with M-<up>/M-<down>, and
the selected candidate is automatically deselected if the user types
more.  So it won't affect anyone who isn't explicitly making use of
M-<up>/M-<down>.

So I suggest we should add a new defcustom to change the RET behavior in
the presence of a selected completion candidate, and default it to t.