first commit
This commit is contained in:
commit
0610f4aeab
130 changed files with 9897 additions and 0 deletions
64
fn/-z4h-fzf
Normal file
64
fn/-z4h-fzf
Normal file
|
@ -0,0 +1,64 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
eval "$_z4h_opt"
|
||||
|
||||
local widget=${WIDGET#z4h-}
|
||||
|
||||
local -a cmd flags bindings
|
||||
zstyle -a :z4h:$widget fzf-command cmd || cmd=($Z4H/fzf/bin/fzf)
|
||||
zstyle -a :z4h:$widget fzf-flags flags || flags=()
|
||||
zstyle -a :z4h:$widget fzf-bindings bindings || bindings=()
|
||||
|
||||
local -A keys=(
|
||||
ctrl-h backward-kill-word
|
||||
alt-j clear-query
|
||||
ctrl-u clear-query
|
||||
ctrl-k kill-line
|
||||
alt-k unix-line-discard
|
||||
ctrl-space toggle-out
|
||||
ctrl-a toggle-all
|
||||
)
|
||||
|
||||
if (( ${@[(I)--layout=default]} )); then
|
||||
keys+=(
|
||||
tab up
|
||||
btab down
|
||||
ctrl-r up
|
||||
ctrl-s down
|
||||
)
|
||||
else
|
||||
keys+=(
|
||||
tab down
|
||||
btab up
|
||||
ctrl-r down
|
||||
ctrl-s up
|
||||
)
|
||||
fi
|
||||
|
||||
local kv
|
||||
for kv in $bindings; do
|
||||
kv=(${(s.:.)kv})
|
||||
(( $#kv == 2 )) || continue
|
||||
keys[$kv[1]]=$kv[2]
|
||||
done
|
||||
|
||||
local k v
|
||||
local -i expect
|
||||
for k v in ${(kv)keys}; do
|
||||
if [[ +$v+ == *+repeat+* ]]; then
|
||||
flags=(--expect=$k "${flags[@]}")
|
||||
expect=1
|
||||
if [[ $v == repeat(|+*) ]]; then
|
||||
keys[$k]=ignore
|
||||
else
|
||||
keys[$k]=${v%%+repeat(|+*)}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
local keymap
|
||||
printf -v keymap '%s:%s,' ${(kv)keys}
|
||||
local out=$("${cmd[@]}" "$@" --bind=${keymap%,} "${flags[@]}")
|
||||
[[ -n $out ]] || return
|
||||
(( expect )) || print
|
||||
print -r -- $out
|
Loading…
Add table
Add a link
Reference in a new issue