diff options
Diffstat (limited to '.local/bin/fm')
-rwxr-xr-x | .local/bin/fm | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/.local/bin/fm b/.local/bin/fm new file mode 100755 index 0000000..2f4fbb8 --- /dev/null +++ b/.local/bin/fm @@ -0,0 +1,22 @@ +#!/bin/sh + +# fzf-man: fuzzy search manual pages + +if [ "$OPENFLAG" = 0 ]; then + input="$*"; page="${input%%)*}"; + name="${page%%[ (]*}"; section="${page#*(}" + if [ "$name" = "$section" ]; then + man "$name" + else + man "$section" "$name" + fi; exit +fi + +mkdir -pv "${XDG_DATA_HOME:=$HOME/.local/share}/fzf" +export FZF_HIST="${XDG_DATA_HOME:=$HOME/.local/share}/fzf/manual_history" + +apropos -l "${@:-.}" | fzf --history="$FZF_HIST" --prompt="man: " \ + --preview='MANWIDTH=$FZF_PREVIEW_COLUMNS OPENFLAG=0 fm {}' \ + --preview-window="hidden" --tiebreak="begin" \ + --bind 'ctrl-v:toggle-preview,ctrl-space:toggle-preview' \ + --bind 'enter:execute(echo {1} >> "$FZF_HIST"; OPENFLAG=0 fm {})' |