Hello Jun, > You can simply use '*:message:action' as a spec for _arguments. This works perfectly. > Output from $(system_profiler -listDataTypes) contains a header line, > which is removed by ( ${$(f)"$(command)"}[2,-1]} ). > You are using _call_program so a user can replace the command by using > zstyle. But the 1st line of the output from the user-specified command > will also be removed. I am now hardcoding the data types into the array as the call for `system_profiler -listDataTypes` is taking a lot of time sometimes. I think this list hardly ever changes (in new versions of OS X?). I will attach my "final" version again. Is it reasonalble (or desired) to commit this upsream? Thank you for your help Lucas