.bash_profile ou .bashrc para shell no emacs?
Eu escrevi um apelido para um comando enorme e o armazenei .bash_profilee, para minha surpresa, o emacs não pegou o apelido em que escrevi .bash_profile. Após algumas pesquisas na internet, criei um .bashrcarquivo no meu $ HOME com o comando alias e somente depois disso o emacs pegou o alias. Estou confuso porque o terminal.app usa o apelido de, .bash_profilemas o emacs leva o apelido apenas no .bashrc.
Eu estava correndo M-x shelle estou no macOS. Alguém pode me explicar qual é a relação com emacs e .bashrc& .bash_profile.
Mais ao ponto, como posso obter o Emacs para ler o meu .bash_profilealém .bashrc?
Como você conseguiu o Emacs pegar seus .bashrcpseudônimos? Estou perguntando isso porque meu Emacs (e aparentemente outros) não faz isso por padrão.
@ArchStanton, veja @Vera Johanna responder a esta pergunta. Esse é o mesmo método que eu usei. Embora agora eu estou usando zshem vez do bash :)
Esse é o comportamento correto. .bash_profileé para os chamados shells de login. Como quando você login para o computador em modo de texto ou em um emulador de terminal para um computador diferente via sshou telnetou ...
.bashrcé destinado a shells que não são de login, como quando você já está logado e inicia um novo xterm ou, neste caso, o shellmodo emacs .
Geralmente, o .bash_profilecontém comandos para ler .bashrctambém:
então o .bashrcé lido em toda inicialização.
Portanto, os aliases pertencem a .bashrc; também é comum criar um separado .bash_aliasese incluí-lo .bashrcatravés da mesma construção:
— Vera Johanna
Além dos pontos mencionados pelo @pingi, você também pode usar um arquivo de configuração separado que será carregado apenas para o emacs shell ( M-x shell):
Na página do manual (emacs) Shell interativo :
O Emacs envia ao novo shell o conteúdo do arquivo '~ / .emacs_SHELLNAME' como entrada, se existir, onde SHELLNAME é o nome do arquivo do qual o shell foi carregado. Por exemplo, se você usar o bash, o arquivo enviado a ele será '~ / .emacs_bash'. Se esse arquivo não for encontrado, o Emacs tentará com '~ / .emacs.d / init_SHELLNAME.sh'.
Isso é útil se você deseja usar um formato de prompt de shell diferente no Emacs ou definir funções para passar arquivos para o emacsclient.