Eu queria escrever alguns scripts e fazer o MacVim chamar alguns comandos bash. Eu tenho alguns apelidos e queria que o vim pudesse chamá-los, então eu sabia que precisava de um shell de login, só não sabia como usar o vim.
Eu li isto: link (que não funcionou para o meu MacVim); e isto: link que parecia ser uma boa ideia.
Então eu abri meu .vimrc e coloquei isso em: set shell=/bin/bash\ -l
.
Agora, algo muito estranho está acontecendo: eu tenho um alias no meu .bash_profile
, assim:
alias mytest='echo "TEST!!"'
Meu .bashrc
sources .bash_profile
, portanto, sei que não deve ser uma questão de onde o alias está definido. Se eu entrar no vim e rodar: :! alias mytest
Eu vejo isto:
alias mytest='echo "TEST!!"'
Press ENTER or type command to continue
Se eu executar :! mytest
, no entanto, é isso que recebo:
/bin/bash: mytest: command not found
shell returned 127
Press ENTER or type command to continue
Então, estou sem idéias sobre como isso pode estar acontecendo. Por que quando eu executo "alias" o alias está lá, mas quando eu executo o próprio alias, o bash não o reconhece?
Agradeço qualquer informação que alguém possa me dar sobre esse assunto.
Obrigado.
ATUALIZAÇÃO:
Eu agora tentei alterar minha linha .vimrc
para:
set shell=/bin/bash\ -li
Para tornar o shell interativo, além de ser um shell de login, funcionou.
Então, eu mudo um pouco a minha pergunta: por que isso faz sentido? Pelo que entendi, um shell de login executa meu .bash_profile
e, portanto, carrega meus aliases. Por que não é suficiente?