#compdef zgetattr zsetattr zdelattr zlistattr local state line expl ret=1 REPLY local -a args privs case $service in zgetattr) _arguments \ '1:file:_files' \ '2:attribute:->attrs' \ '3:parameter' ;; zsetattr) _arguments \ '1:file:_files' \ '2:attribute:->attrs' \ '3:value' ;; zdelattr) _arguments \ '1:file:_files' \ '2:attribute:->attrs' ;; zlistattr) _arguments \ '1:file:_files' \ '2:parameter' ;; esac && ret=0 if [[ $state = attrs ]]; then zlistattr ${~${(Q)line[1]}} REPLY 2> /dev/null _wanted attrs expl 'attribute' compadd $REPLY fi