At The Helm
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., C-x b
, C-x C-f
, C-x k
, 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.