diff options
Diffstat (limited to 'Completion/Builtins/_fc')
-rw-r--r-- | Completion/Builtins/_fc | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/Completion/Builtins/_fc b/Completion/Builtins/_fc index cb3efe48f..40d88db27 100644 --- a/Completion/Builtins/_fc +++ b/Completion/Builtins/_fc @@ -1,27 +1,36 @@ -#compdef fc history +#compdef fc history r -local fc_common +local expl fc_common fc_hist fc_r -fc_common=( \ - '(-A -R -W -I)-m[treat first argument as a pattern]' \ - '(-A -R -W -I)-r[reverse order of the commands]' \ - '(-A -R -W -I -e)-n[suppress line numbers]' \ - '(-A -R -W -I -e -f -E -i)-d[print time-stamps]' \ - '(-A -R -W -I -e -d -E -i)-f[mm/dd/yyyy format time-stamps]' \ - '(-A -R -W -I -e -d -f -i)-E[dd.mm.yyyy format time-stamps]' \ - '(-A -R -W -I -e -d -f -E)-i[yyyy-mm-dd format time-stamps]' \ - '(-A -R -W -I -e)-D[print elapsed times]' \ +fc_common=( + '(-A -R -W -I)-r[reverse order of the commands]' + '(-A -R -W -I -e)-n[suppress line numbers]' '(-A -R -W -I)*::commands:_command_names -e' ) -if [[ $service = *history ]]; then - _arguments -C -s "$fc_common[@]" -else - _arguments -C -s \ - '(-A -R -W -I -e)-l[list resulting commands on stdout]' \ +fc_hist=( \ + '(-A -R -W -I)-m[treat first argument as a pattern]' + '(-A -R -W -I -e -f -E -i)-d[print time-stamps]' + '(-A -R -W -I -e -d -E -i)-f[mm/dd/yyyy format time-stamps]' + '(-A -R -W -I -e -d -f -i)-E[dd.mm.yyyy format time-stamps]' + '(-A -R -W -I -e -d -f -E)-i[yyyy-mm-dd format time-stamps]' + '(-A -R -W -I -e)-D[print elapsed times]' ) + +fc_r='(-A -R -W -I -e)-l[list resulting commands on stdout]' + +case $service in + history) + _arguments -C -s -S "$fc_common[@]" "$fc_hist[@]" && return 0 + ;; + r) + _arguments -C -s -S "$fc_common[@]" "$fc_r" && return 0 + ;; + *) + _arguments -C -s -S \ '(-A -R -W -I -l -n -d -f -E -i -D)-e[specify editor to invoke]:editor to invoke:_command_names -e' \ '(-l -m -e -r -n -d -f -E -i -D -A -W *)-R[read history from file]:history file:_files' \ '(-l -m -e -r -n -d -f -E -i -D -R -W *)-A[append history to file]:history file:_files' \ '(-l -m -e -r -n -d -f -E -i -D -R -A *)-W[write history to file]:history file:_files' \ '(-l -m -e -r -n -d -f -E -i -D -A -W *)-I[read/write new events only]:history file:_files' \ - "$fc_common[@]" -fi + "$fc_common[@]" "$fc_hist[@]" "$fc_r" && return 0 + ;; +esac |