Well, you can go quite far with a few simple tweaks to Ctrl+R.
# disable flow control (Ctrl+S now searches forward in history)
if [ -t 0 ]; then
stty -ixon
fi
And then add the partial search to arrows: > cat .inputrc
$include /etc/inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward
All that in bash.