You can build your own workflow by doing something like:
1. Turn on your shell’s feature to record command history.
2. Look into its feature set to control things such as how many entries it remembers, whether it remembers duplicate entries, and whether it timestamps each entry. (Don’t forget to restart each instance of your shell, if needed, for changes to take effect.)
3. Install a tool such as fzf that allows interactive filtering of arbitrary text. (On Mac, it’s as easy as `brew install fzf`.)
4. Write the necessary shell script(s) / functions / aliases to do things like:
+ invoke the fuzzy-finder on the shell’s history file or a modified version of that file (for example, a modified version that excludes bash’s timestamp lines, or that joins them - perhaps in a human-readable format - with the command it timestamps)
+ process the output of the fuzzy-finder tool (for example, to copy the command to the clipboard, paste it into the shell, or execute it immediately - which will necessitate things like removing any timestamp added in the previous step.)
Step 4 can be easy as something approximating (I’m on mobile right now):
fzf “$HOME/.bash_history” | copy-to-clipboardSearch for `fzf --bash`. Note that the version in the ubuntu repos is too old to have this feature (I think)
What I love about this is the fzf's fuzzy narrow down. You don't have to start at the beginning of command, you don't have to worry about exact spelling. Just a few snippets you remember, it will narrow it down really fast.
I use the same fuzzy search narrow downs in Emacs.
I miss it everywhere else.
I do this ever since I switched to a Mac in 2015 and my history has over 60,000 lines. So that’s basically my knowledge base :)
But your project looks nice. Will check out.