diff --git a/scripts/fzf-search-manpage b/scripts/fzf-search-manpage new file mode 100755 index 0000000..1199656 --- /dev/null +++ b/scripts/fzf-search-manpage @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +set -eu +# https://superuser.com/a/207474 +apropos . | fzf --no-multi --tiebreak=begin --query="$*" | sed -n 's/^\([^ ]\+\) \?(\([^)]\+\)).*$/\2 \1/p' diff --git a/scripts/visman b/scripts/visman index d14c278..6de69fe 100755 --- a/scripts/visman +++ b/scripts/visman @@ -1,4 +1,3 @@ -#!/bin/sh +#!/usr/bin/env sh -# https://superuser.com/a/207474 -man $(apropos . | fzf --no-multi --tiebreak=begin --query="$*" | sed -n 's/^\([^ ]\+\) \?(\([^)]\+\)).*$/\2 \1/p') +man $(fzf-search-manpage) diff --git a/zsh/zle.zsh b/zsh/zle.zsh index 74c3c4f..fd96c33 100644 --- a/zsh/zle.zsh +++ b/zsh/zle.zsh @@ -154,7 +154,9 @@ local words=("${(@z)BUFFER}") local cmd_name="${words[1]}" zle push-line - BUFFER="visman ${(q)cmd_name}" + local manpage="" + manpage="$(fzf-search-manpage "$cmd_name")" + BUFFER="man $manpage" zle accept-line } zle -N find-man-page _widget_find_man_page