Skip to content
Clemens Radermacher edited this page Mar 1, 2021 · 7 revisions

Selectrum is part of a broad ecosystem of packages which together allow for a more fully fledged experience similar to Helm and Ivy:

  • Useful commands based on completing-read are provided by consult. Consult is designed as the counsel equivalent for Selectrum and Icomplete or more generally any completion system based on completing-read.

  • As an alternative filtering method to prescient.el, there is orderless. It supports many different matching styles and integrates with completion-styles.

  • For minibuffer actions and occur/export features there is embark. Embark provides features like ivy-actions/ivy-occur in a framework agnostic way.

  • Helpful minibuffer annotations for M-x, describe-* functions and completions in general are provided by marginalia which is similar to ivy-rich but works with any framework implementing the default API for completion annotations.

  • You can display completions in a child frame using emacs-mini-frame.

  • If you are not using Consult and consult-imenu, Imenu completion can be improved by using flimenu. Both flimenu and consult-imenu turn the tree based item navigation into a flat completion menu. Note that consult-imenu is more powerful, since it additionally offers preview and narrowing.

  • For searching and manipulating the kill-ring there is browse-kill-ring. Multi-line candidates aren't well suited for minibuffer completion, thus you might prefer a dedicated buffer for this. Alternatively, Consult provides the consult-yank command which uses minibuffer completion and previews the text in the buffer at the same time, mitigating the problem with multi-line candidates this way. Note that there is also Embark with its live occur which fits well together with consult-yank. For these reasons it is more recommended to use Consult and Embark instead of browse-kill-ring.

  • In case you are not using prescient.el, an improved M-x is provided by Amx. Like prescient.el and orderless.el it provides as an alternative sorting method. Furthermore it has some extra features specific to M-x, like displaying keybindings, ignoring uninteresting commands, and performing alternate actions (such as C-h f instead of RET to look up docs for a command instead of calling it). Note that Marginalia also provides the keybinding annotation feature and more annotations, and Embark provides more general actions. Therefore it is recommended to use Prescient, Embark and Marginalia instead of Amx.

Clone this wiki locally