navi 2.24.0

An interactive cheatsheet tool for the command-line
Documentation
use str

fn call-navi {
  if (eq $edit:current-command '') {
    var answer = (navi --print)
    edit:replace-input $answer
  } elif (not (str:contains-any $edit:current-command '|')) {
    var answer = (navi --print --query $edit:current-command)
    if (not-eq $answer '') {
      edit:replace-input $answer
    }
  } else {
    var @cmds query = (str:split '|' $edit:current-command)
    var answer = (
      if (eq $query '') {
        navi --print
      } else {
        navi --print --query $query
      }
    )

    if (not-eq $answer '') {
      set cmds = [$@cmds $answer]
      edit:replace-input (str:join '| ' $cmds)
    }
  }
}

set edit:insert:binding[Alt-h] = { call-navi >/dev/tty 2>&1 }