Before this commit, 'bindkey -' would offer screenfuls of widgets, rather than just the options. That was caused by the 'r:|-=* r:|=*' matcher being applied, which considered the "-" a possible positional argument. Fix the problem by informing _arguments that the first positional argument can never be a widget. --- Completion/Zsh/Command/_bindkey | 1 + 1 file changed, 1 insertion(+) diff --git a/Completion/Zsh/Command/_bindkey b/Completion/Zsh/Command/_bindkey index 045cba9..4c4aeda 100644 --- a/Completion/Zsh/Command/_bindkey +++ b/Completion/Zsh/Command/_bindkey @@ -26,6 +26,7 @@ _arguments -C -s -S \ '(-l -L -d -D -A -N -m -s *)-r[unbind specified in-strings]:*:in-string' \ '(-l -L -d -D -A -N -m -p -r *)-s[bind each in-string to each out-string]:*:key string' \ '(-e -v -a -M -l -L -d -D -A -N -m -p)-R[interpret in-strings as ranges]' \ + '(-l -L -d -A -N -m -p -r -s):in-string' \ '(-l -L -d -A -N -m -p -r -s)*::widgets:->widget' && ret=0 case $state in -- 1.7.10.4