Subject: bug#47699: [PATCH] Improve completion-list-mode-map

From: Gregory Heytings <[email-masked]>
Date: Sun, 11 Apr 2021 07:58:04 +0000

>> Currently completion-list-mode-map does not give a specific meaning to 
>> most keys, which means that most keypresses display an error "Buffer is 
>> read-only #<buffer *Completions*>".  I suggest to make it a child of 
>> special-mode-map, and to bind the "n" and "p" keys to "next-completion" 
>> and "previous-completion".
>
> Why just 'n' and 'p'?  If we want more commands to move between 
> completions, I could think about several others: <, >, C-f, C-b, C-n, 
> C-p, Home, End, the arrow keys, etc.
>

It's not "just 'n' and 'p'", it adds 'n' and 'p' to the already available 
choices, completion-list-mode-map already defines:

TAB, right = next-completion
backtab, left = previous-completion

and C-{p,n} and the arrow keys work as usual.

>
> However, these bindings are only available if one makes *Completions* 
> the current buffer, right?
>

Yes, of course.

>
> Which rarely if ever happens in TAB-completion scenarios, right?  If so, 
> is that really helpful to have these additional bindings, and if so, in 
> what use cases?
>

Well, vanilla Emacs defines M-v = switch-to-completions, which opens 
*Completions* and makes it the current buffer.  In a selection-like 
scenario, it makes sense to switch to the completions buffer where you can 
freely move around, use isearch, and so forth.