History deleting helper for Fish shell
I wrote back in February about a neat history
command built-in to the Fish
shell that allows you to, amongst other things, delete entries from your
history.
To recap, you use it like this:
1
2
3
4
5
6
7
8
9
10
11
12
$ history delete --contains "mix echo"
[1] history search --contains "mix echo"
[2] mix echo.migrate
[3] mix echo.create
[4] mix echo.reset
[5] mix echo.setup
Enter nothing to cancel the delete, or
Enter one or more of the entry IDs separated by a space, or
Enter "all" to delete all the matching entries.
[I] Delete which entries? >
This is really cool, but the only thing missing for me was the ability to
fuzzily find history entries, so I wrote a quick Fish function to combine
history
with fzf
, my favourite shell program. I also made a small
change to the history command by swapping --contains
for --prefix
which
makes more sense when combined with fzf
as the search is more constrained.
1
2
3
function dh -d "Fuzzily delete entries from your history"
history | fzf | read -l item; and history delete --prefix "$item"
end
Now you can type dh
and fuzzily search for history before being dropped into
the interactive prompt as usual.