I have created a smart Zshell omni completion for Vim. You can use this plugin when coding a Zshell script in order to gain: 1. Automatic completion of all of the existing parameters and only after a dollar $… or at the command position (i.e.: when assigning PARAM1=value). 2. Automatic completion of all of the existing arrays' and hashes' keys (i.e.: subscripts) and only when inside a VARIABLE[…]. 3. Automatic completion of all of the existing function names and only when at the command-position, i.e.: after a new-line, or an `if`, or a semicolon, etc. Homepage: https://github.com/zphere-zsh/zsh-omni-completion