Title: Use fzf for ksh history search
Author: Solène
Date: 17 October 2021
Tags: openbsd shell ksh fzf
Description: 

# Introduction

fzf is a powerful tool to interactively select a line among data piped
to stdin, a simple example is to pick a line in your shell history and
it's my main fzf use.

fzf ships with bindings for bash, zsh or fish but doesn't provide
anything for ksh, OpenBSD default shell.  I found a way to run it with
Ctrl+R but it comes with a limitation!

This setup will run fzf for looking a history line with Ctrl+R and will
run it without allowing you to edit the line! /!\

# Configuration

In your interactive shell configuration file (should be the one set in
$ENV), add the following function and binding, it will rebind Ctrl+R to
fzf-histo function that will look into your shell history.

```
function fzf-histo {
    RES=$(fzf --tac --no-sort -e < $HISTFILE)
    test -n "$RES" || exit 0
    eval "$RES"
}

bind -m ^R=fzf-histo^J
```

Reload your file or start a new shell, Ctrl+R should now run fzf for a
more powerful history search.  Don't forget to install fzf package.