"The real differentiator between zsh and other shells, even the
recent improvements provided in shells like bash, is the ability to
customize the auto-completion system to work with more than just
filenames and paths. Extending the functionality to support
additional arguments to your existing commands is just one example,
but the system is so flexible that you could almost complete any
command or command-line element."