diff options
Diffstat (limited to 'completions/alias')
-rw-r--r-- | completions/alias | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/completions/alias b/completions/alias index 92211d8..9a0f3d2 100644 --- a/completions/alias +++ b/completions/alias @@ -1,20 +1,28 @@ # bash alias completion -*- shell-script -*- -_alias() +_comp_cmd_alias() { - local cur prev words cword - _init_completion -n = || return + local cur prev words cword comp_args + _comp_initialize -n = -- "$@" || return - case ${words[@]} in + case "${words[*]}" in + *" -p "*) + return + ;; *[^=]) - COMPREPLY=($(compgen -A alias -- "$cur")) + _comp_compgen -- -A alias ;; *=) - COMPREPLY=("$(alias ${cur%=} 2>/dev/null | command sed \ + COMPREPLY=("$(alias "${cur%=}" 2>/dev/null | command sed \ -e 's|^alias '"$cur"'\(.*\)$|\1|')") ;; esac + + if [[ $cur == -* ]]; then + _comp_compgen_usage -c help -s "$1" + ((${#COMPREPLY[*]} != 1)) || compopt +o nospace + fi } && - complete -F _alias -o nospace alias + complete -F _comp_cmd_alias -o nospace alias # ex: filetype=sh |