A recent change (https://github.com/raxod502/straight.el/pull/558) to
straight.el's use-package integration led to some of my :straight
definitions throwing errors.
When overriding the package name, do not wrap the real name in parens,
for example:
;; bad (no longer works)
(use-package helm-global-bindings
:straight (helm))
;; good (worked before, still works)
(use-package helm-global-bindings
:straight helm)
- Assign `helm-apropos` to `<helm-prefix> d` instead of the default
`<helm-prefix> a`, as that is now taken up by `helm-do-ag`.
- Use the `helpful` package to describe functions and variables.
This involved always loading `helm-config` which sets up
`helm-command-prefix` and `helm-command-map` allowing use-package to set
bindings on the map all without loading anything else until needed.
This is a temporary fix for now, as I prefer lazy-loading packages
whenever possible. However when lazy-loading helm, and then using
use-package to set a keybinding in the helm-command-map before it's
loaded, causes the "m" keybinding to be overridden by the default one
from helm, once helm loads.
I mapped helm-make-projectile to "m" within the helm-command-map, which
replaced helm-man-woman which, so let's make that available as "M"
within the helm-command-map instead.
Smex has not been updated since late 2015. Amx was originally a fork of
smex, but as since evolved much further into it's own thing.
Among other things is supports other completing backends, and ivy with
it's fuzzy matching feels rather nice. I'm keeping ido-mode for
everything else, but specifically for M-x I'll give ivy a try.