Alternatives
There are many alternative completion UIs, each UI with its own advantages and disadvantages.
Vertico aims to be 100% compliant with all Emacs commands and achieves that with a minimal code base, relying purely on completing-read while avoiding to invent its own APIs. Inventing a custom API as Helm or Ivy is explicitly avoided in order to increase flexibility and package reuse. Due to its small code base and reuse of the Emacs built-in facilities, bugs and compatibility issues are less likely to occur in comparison to completion UIs or monolithic completion systems.
Since Vertico only provides the UI, you may want to combine it with some of the complementary packages, to give a full-featured completion experience similar to Helm or Ivy. The idea is to have smaller independent components, which one can add and understand step by step. Each component focuses on its niche and tries to be as non-intrusive as possible. Vertico targets users interested in crafting their Emacs precisely to their liking - completion plays an integral part in how the users interacts with Emacs.
There are other interactive completion UIs, which follow a similar philosophy:
- Mct: Minibuffer and Completions in Tandem. Mct reuses the default
*Completions*buffer and enhances it with automatic updates. From Emacs version 31 automatic updates are built-in, see the settings ‘completions-eager-update’ and ‘completions-eager-display’. - Icomplete: Emacs provides the builtin ‘
icomplete-vertical-mode’, which is more bare-bone than Vertico. Vertico offers additional flexibility via its extensions. - Selectrum: Selectrum is the deprecated predecessor of Vertico. Read the migration guide when migrating from Selectrum.