I like being able to see all the possible inputs in the minibuffer. It’s one of the reasons I like ido - being able to see the possible completions inline when accessing files or buffers is just incredibly helpful. Another package I use to show minibuffer completion options is icomplete, a package that comes built-in with GNU Emacs. Icomplete will display completions in the minibuffer for all the frequently-used minibuffer commands: M-x, C-h v, C-h f, and probably a lot more that I just don’t use as much.
Icomplete will display all the possible completions you can enter in the minibuffer, much as Ido does. To enable it, you call the icomplete-mode function. The re aren’t many customizations for it: The main one you want to change is either icomplete-max-delay-chars or icomplete-compute-delay. Setting either of these to 0 will force icomplete to display completions as soon as a letter is typed. Without setting one of these, for small number of typed characters icomplete will wait for some time before displaying completions. You may want this if you have a very slow computer, but for the most part the computation is inexpensive enough you don’t notice any lag.
Icomplete+ is an third-party enhancement to icomplete. Since it doesn’t come with Emacs, you’ll have to download it from here. Icomplete+ doesn’t add new functionality; rather, it enhances the display of icomplete. It does this by changing faces for the stem and the completion candidates, as well as for the keybinding for a command you are selected. It also displays the number of completions, which can be nice to know. All in all, it makes icomplete look much nicer and I’d recommend getting it. To enable what I’ve described here, just put this in your initialization:
(icomplete-mode 1) (setq icomplete-compute-delay 0) (require 'icomplete+)