How do I get vim's :sh command to source my bashrc? How do I get vim's :sh command to source my bashrc? unix unix

How do I get vim's :sh command to source my bashrc?


See :help 'shell'. You can set this string to include -l or --login, which will source your .bashrc file. So, you might have a line like this in your .vimrc:

set shell=bash\ --login

Note that this will alter everything that invokes the shell, including :!. This shouldn't be much of a problem, but you should be aware of it.

The value of this command can also be changed by setting the $SHELL environment variable.


If it doesn't source your .bashrc file, it may still source your .bash_profile file. I usually make one of them a symlink to the other. If your .bashrc performs some particularly odd one-time operations, you may have to edit it to only perform those operations with a login shell, but I've never had problems with it.


~/.vimrc

cmap sh<CR> !bash --login<CR>

If you quickly enter "sh<Enter>" in command-line, you can start bash with sourcing ~/.bashrc. So dirty.