Whenever I start a shell in vim using :sh, it doesn't source my ~/.bashrc file. How can I get it to do this automatically?
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.