I use zsh and want to have intelligent completion for open(1). I believe the command $ compctl -f -x 'c[-1,-a]' -M 'b:=*' -k _apps -- open provides this. I believe what this does is: a) per default complete on filenames and directories b) iff the previous word is "-a" then perform completion using the _apps arrary. This means that without "-a" filenames and directories are completed and that _after_ the application has been completed filenames and directories will be completed; therefore an argument can supplied to the application. To populate the _apps array I use: $ typeset -a _apps $ _apps=(${(f)"$(mdfind "kMDItemKind == 'Application'")"}) An example run is below. [bpm at snafu] c:~>typeset -a _apps [bpm at snafu] c:~>_apps=(${(f)"$(mdfind "kMDItemKind == 'Application'")"}) [bpm at snafu] c:~>echo ${#_apps} 398 [bpm at snafu] c:~>echo ${_apps[0]} /Applications/iPhoto.app [bpm at snafu] c:~>compctl -f -x 'c[-1,-a]' -M 'b:=*' -k _apps -- open [bpm at snafu] c:~>open -a /Library/Application\ Support/Adobe/Workflow/Adobe\ Workgroup\ Helper [bpm at snafu] c:~>open -a Photo /Applications/Adobe\ Photoshop\ Elements\ 2/Photoshop\ Elements\ 2.0 /Applications/Hewlett-Packard/HP\ Photo\ and\ Imaging\ Software/HP\ E-mail\ Portal/HP\ E-mail\ Portal ... /Applications/Hewlett-Packard/HP\ Photo\ and\ Imaging\ Software/HP\ Tools/HP\ Image\ Dropper.app /Applications/iPhoto.app /Library/Documentation/Applications/iPhoto/iPhoto\ Getting\ Started.app -- ~`^`'~=-._.-=~'`^`'~=-._.-=~'^'~=-., \|/ (___) \|/ _,.-=~'`^` @~./'O o`\.~@ "Knowledge is Power" /__( \___/ )__\ *PPPFFBT!* -- Francis Bacon `\__`U_/' _.-=~'``'~=-._.-=~'``'~=-._.-=~'`^`'~= <____|' ^^`'~=-.,__,.-= ~'^`'~=-._.-=~'`^`'~=-._.-=~'^'~=-.,__,.-==--^'~=-.,__,.-=~'`^`