I love fzf but no need to invent the wheel here if you are using zsh. check out one of these zle plugins. (Demo https://asciinema.org/a/155704)
I prefer these two, you get good performance, search that is semi-shell syntax aware, ranking that takes age somewhat into account, and syntax hilighting.
Also one of fzf major yet non obvious feature is that you can use fzf in many places, which means that the fuzzy search algorithm and behaviour is exactly the same whether I search for shell history or project files in vim or commit messages or...
There's nothing more annoying than having two fuzzy search implementations that behave mostly the same except in this or that case which subtly breaks your implicit mental model of it.
Right, and fzf is usable across all major shells, which is a big plus. For example I use zsh at home, but at work I'm forced to use bash for everything, but it works there just the same. Plus you can bend it to other purposes than just a fancy history lookup
I prefer these two, you get good performance, search that is semi-shell syntax aware, ranking that takes age somewhat into account, and syntax hilighting.
https://github.com/zdharma-continuum/history-search-multi-wo... with https://github.com/zdharma-continuum/fast-syntax-highlightin...
or the same thing but older, for those who like older things because they have an air of stability about them: https://github.com/zsh-users/zsh-history-substring-search