I've been happy to replace smex with fido-mode in emacs 28, as fido-mode generally has much nicer behavior. However, one thing that I miss from smex is that smex would remember which strings correspond to which commands and persist them, so that the suggested commands over time would correspond to the commands I actually use.
As an example, with fido-mode, when I type M-x repl
, it always shows me the options
coffee-repl
message-reply
replace-regexp
replace-string
uce-reply-to-uce
replace-rectangle (string-rectangle)
gnus-button-reply
message-wide-reply
ethio-replace-space
replace-buffer-contents
replace-buffer-in-windows
But I am basically always looking for replace-string
. With smex
, after the first time I would chose replace-string
it would always suggest this first when I did M-x repl
. But fido seems to have no such memory, even within the same emacs session.