first commit
This commit is contained in:
commit
0610f4aeab
130 changed files with 9897 additions and 0 deletions
54
fn/-z4h-cmd-bindkey
Normal file
54
fn/-z4h-cmd-bindkey
Normal file
|
@ -0,0 +1,54 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
eval "$_z4h_opt"
|
||||
|
||||
zparseopts -D -F -- || return '_z4h_err()'
|
||||
|
||||
if (( ARGC < 2 )); then
|
||||
-z4h-help-bindkey >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
(( ${+_z4h_key} )) || return 0
|
||||
|
||||
local kb seq seqs new_seqs
|
||||
|
||||
for kb in ${@:2}; do
|
||||
seqs=('')
|
||||
for kb in ${(@s: :)kb}; do
|
||||
if [[ -n ${seq::=$_z4h_key[$kb]} ]]; then
|
||||
seqs=(${^seqs}$seq)
|
||||
else
|
||||
case $kb in
|
||||
?~[a-z])
|
||||
seqs=(${^seqs}$kb ${^seqs}${(L)kb})
|
||||
;;
|
||||
Ctrl+[A-Z'[]\'])
|
||||
seqs=(${^seqs}'^'$kb[-1])
|
||||
;;
|
||||
(Alt|Option)+[A-Z'[]\/.,'])
|
||||
new_seqs=(${^seqs}'^['$kb[-1] ${^seqs}'^['${(L)kb[-1]})
|
||||
if zstyle -T :z4h:bindkey macos-option-as-alt &&
|
||||
[[ -n ${seq::=$_z4h_macos_opt_key[$kb[-1]]} ]]; then
|
||||
new_seqs+=(${^seqs}$seq)
|
||||
if [[ -n ${seq::=$_z4h_macos_opt_key[${(L)kb[-1]}]} ]]; then
|
||||
new_seqs+=(${^seqs}$seq)
|
||||
fi
|
||||
fi
|
||||
seqs=($new_seqs)
|
||||
;;
|
||||
Ctrl+(Alt|Option)+[A-Z'[]\'])
|
||||
seqs=(${^seqs}'^[^'$kb[-1])
|
||||
;;
|
||||
*)
|
||||
print -Pru2 -- '%F{3}z4h%f: invalid key binding: %F{1}'${kb//\%/%%}'%f'
|
||||
return '_z4h_err()'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
for seq in ${(u)seqs}; do
|
||||
builtin bindkey -- $seq $1
|
||||
done
|
Loading…
Add table
Add a link
Reference in a new issue