On my system using #bash and #zsh I do this rather simply in my extended .bashrc or .zshrc with lots of ad-hoc functions and aliases defined (they both source a custom file that is full of function definitions adapted to my daily usage)
The supplementary advantage: no need to write the entire command. The most difficult remains the naming, like for everything in programming ;-)
But before I write dedicated functions, there is a time that elapses before for determining which are the command lines I do sufficiently often
(so as not to forget that I have created a dedicated function for them... and in my bashrc zshrc extensions there are many unused or infrequently used functions that I remember only once I add a new function close to them in the sourced files...)
In my personnal case, I think #tbmk could do the job very well between "what's that command again?" and "oh super I already programmed it"
I might very well have a look at it




