#autoload (( $+_comps )) || { autoload -U compinit; compinit -i -D } zmodload zsh/zpty if ! bindkey -M __complete 2>/dev/null then bindkey -N __complete zle -C __complete_all complete-word _generic zstyle ':completion:__complete_all::::' completer _all_matches _complete zstyle ':completion:__complete_all:*' insert true bindkey -M __complete '^Xa' __complete_all # bindkey -M __complete '^X?' _complete_debug bindkey -M __complete $'\n' .accept-line # bindkey -M __complete '^G' .send-break __init_complete() { zle -U $'\Cxa\n' } zle -N __init_complete fi completion-context() { if (( debug )); then print -u $debug -C 2 -a -r \ CONTEXT: ":completion:$curcontext" \ STATE: '' "${(@kv)compstate}" fi } hide-vared() { compstate[vared]='' } run-complete () { local -a compprefuncs=(hide-vared "${(@)compprefuncs}") vared -M __complete -i __init_complete ${${argv:+argv}:-reply} } debug-complete() { local -i debug local -a compprefuncs=(completion-context "${(@)compprefuncs}") local -a comppostfuncs=("${(@)comppostfuncs}" completion-context) exec {debug}>&2 complete "$@" exec {debug}>&- } complete() { local -a reply=( "$@" ) zpty complete-tty run-complete { zpty -r complete-tty } always { zpty -d complete-tty } } (( ARGC )) && complete "$@"