No, I couldn't just call this post "Helm". The terrible title I chose called to me, and so I acquiesced. Helm is the most invasive package I've installed thus far. It replaces the majority of commands where user input is expected (e.g.,
M-x) with its own version. Helms commands offer lists of candidates, shown in a pop-up window, which can be filtered, navigated, and selected. This is far more powerful than the default commands, and I find it useful.
An instance of
C-x C-f (
helm-find-files) appears as follows:
Now let's get that package in the system.
(use-package helm :ensure t :pin melpa-stable :diminish helm-mode :bind ("M-x" . helm-M-x) ("C-x C-f" . helm-find-files) :init (setq helm-mode-fuzzy-match t) :config (helm-mode 1))
Fuzzy matching has been enabled, which requires more processing of a list of candidates, but I have used this feature in the past and appreciated it. To explain be example, I can type
C-h v hmfm looking for
helm-mode-fuzzy-match and the list of candidates will include every variable that matches the regex
.*h.*m.*f.*m.*, which is a lot of candidates. As always, if this annoys me later I can disable it effortlessly.
When I initially installed Helm, I limited its use to
M-x, but found that I enjoyed it a great deal. I have used Interactive Do (Ido) in earlier times, but I like Helm better. There's also Ivy which is the new kid on the block, but until Helm pisses me off someday it has my (fickle) loyalty.