You can have the best of both worlds - use atuin and fzf.
I use fish shell, so you'll have to forgive any fishisms.
First, when you start atuin, don't bind to ctrl-r, instead manually bind it to something else. I use ctrl-t. This brings up the "standard" atuin interface which you can use to get the more detailed history - in particular the command inspector can be super helpful as is the ability to limit scope of history searches.
Next, bind ctrl-r to something like this: `commandline -r (atuin history list --print0 -f "{time} | {command}" | fzf --read0 --delimiter="|" --accept-nth 2 | sed 's/^ *//')`
In fish-speak, that's saying replace the command line with a command that fzf selects from your atuin history (which has been pretty printed to show the time of the command, but that won't end up on the command line).
Probably 95% of the time I'm using my new ctrl-r which searches atuin history using fzf. The other 5% of the time I'm looking for a command that I know I've ran in a particular directory, or using the atuin history to remove problematic entries from my history.
I've considered this, but I'm running on a potato, and fetching the whole atuin history seems to take a while:
$ time atuin history list --print0 -f "{time} | {command}" > /dev/null
real 0m1.849s
(for some reason the built-in atuin search command doesn't take so long to show up? It might only fetch the last few entries from the db first... Eh, actually `atuin search` without argument which lists roughly the same thing run in less than half the time (0.85s), but -i is still another order of magnitude faster)
I use fish shell, so you'll have to forgive any fishisms.
First, when you start atuin, don't bind to ctrl-r, instead manually bind it to something else. I use ctrl-t. This brings up the "standard" atuin interface which you can use to get the more detailed history - in particular the command inspector can be super helpful as is the ability to limit scope of history searches.
Next, bind ctrl-r to something like this: `commandline -r (atuin history list --print0 -f "{time} | {command}" | fzf --read0 --delimiter="|" --accept-nth 2 | sed 's/^ *//')`
In fish-speak, that's saying replace the command line with a command that fzf selects from your atuin history (which has been pretty printed to show the time of the command, but that won't end up on the command line).
Probably 95% of the time I'm using my new ctrl-r which searches atuin history using fzf. The other 5% of the time I'm looking for a command that I know I've ran in a particular directory, or using the atuin history to remove problematic entries from my history.