# goto completion -*- shell-script -*- _comp_cmd_goto() { local cur prev words cword comp_args _comp_initialize -- "$@" || return # echo "[$cur] [$prev] [${words[@]}] [$cword] [$comp_args]" local -A opts=([-e]="" [-l]="" [-t]="") local i for i in "${!words[@]}"; do [[ ${words[i]} && $i -ne $cword ]] && unset -v "opts[${words[i]}]" case "${words[i]}" in -e) unset -v 'opts[-l]' 'opts[-t]' ;; -l) unset -v 'opts[-e]' 'opts[-t]' ;; -t) unset -v 'opts[-e]' 'opts[-l]' ;; esac done if [[ $cur == -* ]]; then _comp_compgen -- -W '"${!opts[@]}"' return fi case $prev in -e) [[ -v 'opts[-e]' ]] && __goto_comp_keys return ;; esac # do goto keys only if we did not have -[elt] [[ ${words[*]} == *\ -* ]] || __goto_comp_keys } && complete -F _comp_cmd_goto goto # ex: filetype=sh