#compdef service # *:: for last argument looks more like a hack but it is # the simplest way known to me to reset $words and keep # _sub_command happy # we are interested in init service only local ctx="${curcontext}argument-1:" zstyle -T ":completion:${ctx}" tag-order && \ zstyle ":completion:${ctx}" tag-order init _arguments -s \ '(-d --debug)'{-d,--debug}'[turn debugging on]' \ '(- :)'{-h,--help}'[print usage]' \ '(- :)'{-v,--version}'[print version]' \ '(-)'{-f,--full-restart}'[restart service]' \ '(- :)'{-R,--full-restart-all}'[restart all services]' \ '(- :)'{-s,--status-all}'[print status of all services]' \ ':service name:_services' \ '*::service argument: _init_d'