Skip to content

Ivy and Helm

The well-known and hugely powerful completion frameworks Ivy and Helm also provide for matching space-separated component regexps in any order. In Ivy, this is done with the ‘ivy--regex-ignore-order’ matcher. In Helm, it is the default, called "multi pattern matching".

This package is significantly smaller than either of those because it solely defines a completion style, meant to be used with any completion UI supporting completion styles while both of those provide their own completion UI (and many other cool features!).

It is worth pointing out that Helm does provide its multi pattern matching as a completion style which could be used with default tab completion, Icomplete or other UIs supporting completion styles! (Ivy does not provide a completion style to my knowledge.) So, for example, Icomplete users could, instead of using this package, install Helm and configure Icomplete to use it as follows:

emacs-lisp
(require 'helm)
(setq completion-styles '(helm basic))
(icomplete-mode)

(Of course, if you install Helm, you might as well use the Helm UI in ‘helm-mode’ rather than Icomplete.)