Я хотел написать несколько скриптов и заставить MacVim вызывать некоторые команды bash. У меня есть несколько псевдонимов, и я хотел, чтобы vim мог их вызывать, поэтому я знал, что мне нужна оболочка для входа, просто не знал, как заставить vim использовать ее.
Я прочитал это: https://stackoverflow.com/questions/4642822/vim-is-not-obeying-command-aliases (который не работал для моего MacVim); и это: https://stackoverflow.com/questions/4642822/vim-is-not-obeying-command-aliases, что показалось хорошей идеей.
Поэтому я открыл свой .vimrc и поместил это в: set shell=/bin/bash\ -l
.
Сейчас происходит нечто очень странное: в моем .bash_profile
есть псевдоним, например:
alias mytest='echo "TEST!!"'
Мои .bashrc
исходники .bash_profile
, так что я знаю, что это не должно зависеть от того, где установлен псевдоним. Если я захожу внутрь vim и запускаю :! alias mytest
Я вижу это:
alias mytest='echo "TEST!!"'
Press ENTER or type command to continue
Если я бегу :! mytest
хотя, это то , что я получаю:
/bin/bash: mytest: command not found
shell returned 127
Press ENTER or type command to continue
Так что у меня нет идей о том, как это может происходить. Почему, когда я запускаю "псевдоним", псевдоним есть, но когда я запускаю псевдоним сам, bash его не распознает?
Я ценю любое понимание, которое каждый может дать мне по этому вопросу.
Спасибо.
ОБНОВИТЬ:
Теперь я попытался изменить строку .vimrc
на:
set shell=/bin/bash\ -li
Для того, чтобы сделать оболочку интерактивной, а также являющейся оболочкой входа в систему, она работала.
Поэтому я немного изменил свой вопрос: почему это имеет смысл? Насколько я понимаю, оболочка входа в систему запускает мой .bash_profile
и, таким образом, загружает мои псевдонимы. Почему этого недостаточно?