# compdef yafc _yafc() { local arguments arguments=( '(--anon -a)'{--anon,-a}'[try an anonymous login]' '(--debug -d)'{--debug,-d}'[print all messages to/from server]' '(--dump-rc -D)'{--dump-rc,-D}'[print the default configuration file]' '(--mechanism -m)'{--mechanism=-,-m}'[specify a security mechanism]:security mechanism:(krb4, krb5, none)' '(--norc -n)'{--norc,-n}'[do not read the users configuration file]' '(--noproxy -p)'{--noproxy,-p}'[do not connect via the proxy]' '(--quiet -q)'{--quiet,-q}'[do not print the welcome message]' '(--rcfile -r)'{--rcfile=-,-r}'[specify a configuration file]:configuration file:_files' '(--trace -t)'{--trace=-,-t-}'[specify a trace file]:trace file:_files' '(--noauto -u)'{--noauto,-u}'[do not login automagically]' '(--noalias -U)'{--noalias,-U}'[as --noauto, but bookmark aliases is disabled]' '(--verbose -v)'{--verbose,-v}'[print all responses received]' '(--wait -w)'{--wait,-w=}'[specify a waiting time between connection attempts]:wait time: ' '(--workdir -W)'{--workdir=,-W+}'[use a different working directory]:working directory:_directories' '(--version -V)'{--version,-V}'[print version information]' '(--help -h)'{--help,-h}'[print a short help description]' '*:address:_yafc_address' ) _arguments -S -s $arguments } (( $+functions[_yafc_bookmarks] )) || _yafc_bookmarks() { local bkmfile=~/.yafc/bookmarks if [[ -f $bkmfile ]]; then local -a bkms bkms=(${${${(M)"${(f)$(<$bkmfile)}":#machine*alias ##\'*\' #}##machine*alias ##\'}%%\' #}) #" vim syntax goes crazy _wanted bookmarks expl 'bookmarks' compadd "$@" -a - bkms fi } (( $+functions[_yafc_address] )) || _yafc_address() { _alternative 'bookmarks:bookmark:_yafc_bookmarks' '_hosts' } _yafc "$@"