Vim process stops after executing an external command
Don't use an interactive shell to execute commands. (That's the i
in -ic
.)
The default shellcmdflag (-c
) should work just fine.
If you are specifying -i
in order to get bash to read your .bashrc
file (which is a side-effect of starting an interactive shell), then you would be better off just telling bash to read a startup environment script. Quoting the bash manpage:
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.
You can set environment variables inside vim with :let