#compdef grml-tips local db=/usr/share/grml-tips/tags local -a args if [[ ! -e $db ]]; then _message 'Tip database not found: `'$db\' return 0 fi __grml-tips-tags () { local expl local -a tags tags=( ${(f)"$(<$db)"} ) _wanted tag expl 'grml-tips tag' compadd ${expl} -- ${tags} } args=( '--help[Display help message]' '--tagsonly[Match only by tag, not by pattern]' '--tipsfile[Use non-default tips-file]:_path_files' '*::grml-tips tag:__grml-tips-tags' ) _arguments $args