Как заставить vim использовать ту же среду, что и моя оболочка для входа в систему, при запуске команд с "!"? - PullRequest
6 голосов
/ 01 февраля 2012

Я использую !ls для выполнения команды bash. Но после того, как я настроил что-то вроде source ~/.usr_profile в ~/.profile файле, vim также не будет получать этот файл. Поэтому, когда я хочу выполнить функцию, объявленную в usr_profile, я должен запустить :!source ~/.usr_profile && my_command. Когда я использую это один или два раза, это нормально. Но при частом использовании mymim становится грязным.
Есть ли лучший способ решить эту проблему. Спасибо

1 Ответ

17 голосов
/ 01 февраля 2012

Добавление этой строки в ~/.vimrc должно решить вашу непосредственную проблему:

set shell=bash\ -l

Когда вызывается с -l (--login), bash читает ваш ~/.profile при запуске (среди других файлов) и, таким образом, все оттуда исходит.

Когда вызывается с -i (--interactive), bash читает ваш ~/.bashrc при запуске (среди других файлов) и, таким образом, все оттуда исходит.

Попробуйте $ man bash или :h shell и :h shellcmdflag для получения дополнительной информации.

Что касается различий между логином и не-логином, я должен признать свое невежество. Этот ответ на serverfault может помочь, это интересно, в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...