Vim runs bash commands with the -c argument, which makes the shell non-interactive and invalid and bypasses reading boot files.
You can override this with an environment variable.
From bash man:
  When bash is started non-interactively, to run a shell script, for example, it looks for the variable BASH_ENV in the environment, expands its value if it appears there, and uses the expanded value as the name of a file to read and execute. Bash behaves as if the following command were executed: if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi but the value of the PATH variable is not used to search for the file name. 
Alternatively, vim itself may be prompted to run shells as input systems. From vim :help shell we get the following:
  On Unix the command normally runs in a non-interactive shell. If you want an interactive shell to be used (to use aliases) set 'shellcmdflag' to "-ic". For Win32 also see |:!start|. 
Digitaloss 
source share