Добавление этой строки в ~/.vimrc
должно решить вашу непосредственную проблему:
set shell=bash\ -l
Когда вызывается с -l
(--login
), bash читает ваш ~/.profile
при запуске (среди других файлов) и, таким образом, все оттуда исходит.
Когда вызывается с -i
(--interactive
), bash читает ваш ~/.bashrc
при запуске (среди других файлов) и, таким образом, все оттуда исходит.
Попробуйте $ man bash
или :h shell
и :h shellcmdflag
для получения дополнительной информации.
Что касается различий между логином и не-логином, я должен признать свое невежество. Этот ответ на serverfault может помочь, это интересно, в любом случае.