diff options
Diffstat (limited to 'Completion/Commands/_bash_completions')
-rw-r--r-- | Completion/Commands/_bash_completions | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Completion/Commands/_bash_completions b/Completion/Commands/_bash_completions new file mode 100644 index 000000000..5f3adc1e0 --- /dev/null +++ b/Completion/Commands/_bash_completions @@ -0,0 +1,43 @@ +#compdef -K _bash_complete-word complete-word \e~ _bash_list-choices list-choices ^X~ +# +# This function is for bash compatibility. As some of the bash bindings +# are already taken up in zsh, only Esc ~ and \C-x ~ are bound, and +# you must add the rest by hand. The bindings expected are: +# +# Esc ! -> command name +# Esc $ -> environment variables +# Esc @ -> machine names +# Esc / -> file name +# Esc ~ -> a user name +# +# C-x instead of Esc with one of the above will list matches and won't +# attempt any completion. +# +# The following will bind the remaining set; simply put it in .zshrc +# after compinit is run. +# +# for key in '!' '$' '@' '/'; do +# bindkey "\e$key" _bash_complete-word +# bindkey "^X$key" _bash_list-choices +# done +# +# If for some reason \e~ or ^X~ were already bound to something else, +# that will not have been overridden, so you should add '~' to the +# list of keys at the top of the for-loop. + +local key=$KEYS[-1] + +case $key in + '!') _main_complete _command_names + ;; + '$') compgen -E + ;; + '@') _main_complete _hosts + ;; + '/') _files + ;; + '~') _main_complete _users + ;; + *) _message "Key $key is not understood" + ;; +esac |