>>> 1) I think it is more intuitive to invert and use the M-S- >>> minibuffer-choose-** and M- for >>> minibuffer-{previous|next}-completion for not insert commands... >> >> Easier to type M- were intended as the primary way to use this feature. > I know, but such primary behavior is too intrusive IMO. > >> Whereas more hard to type M-S-/M-RET as a rarely used alternative. > Mi proposal (the suffix one) is basically to avoid the need of M-RET. So your proposal is something in between. Then maybe instead of two sets of commands (that either insert the current completion or not) we could have one set of commands bound to M-/M-, and a customizable option with three values: insert, don't insert, use transient suffix. > I took the idea basically from some configs around for fish and zsh.. > ... > But OTOH I will strongly recommend the C-g and arrow navigation > behavior... That could be maybe implemented with a set-transient-map... What is also interesting to note is that even every web browser uses own completion logic: 1. in Firefox: the suffix of the first completion is inserted to the address bar as the selected region, but / inserts the completion without selecting its suffix, like M-/M- currently does in Emacs. One ESC closes the completions window, another ESC clears the address bar. 2. in Chromium: / inserts the completion without any selection, like M-/M- currently does in Emacs. One ESC clears the inserted string, another ESC closes the completions window and clears the address bar. >> But what about M-/M- for not one-column format? > > This just confirms me that the initial approach implemented with a minor > mode (or using a set-transient-map) may be a solution. We started with non-intrusive keybindings. But indeed, more intrusive keys should be enabled only depending on a new customizable option. Here is the next patch that does this and allows using all arrow keys only when the completions window is visible: