Aliases e tmux

12

Os alias definidos em .bash_aliases e .bashrc não funcionam em tmux .

Isso pode ser alterado em alguma configuração, portanto, os aliases funcionam em tmux ?

    
por xralf 11.05.2012 / 12:29

2 respostas

9

tmux inicia um shell de login por padrão, portanto, ~/.bashrc não será executado (e, em seguida, origina ~/.bash_aliases . Você precisa obter ~/.bashrc do seu ~/.bash_profile . Consulte a seção INVOCATION do man bash .

    
por 11.05.2012 / 14:12
17

( A resposta de Chris Down tem a explicação correta, mas não uma boa solução)

Seu problema deriva de uma combinação de um bug de projeto bash e um erro de design do tmux.

Por padrão, o tmux inicia um shell de login em todas as janelas. Isso não faz sentido: se você configurou o tmux como seu shell de login, você precisa definir a opção default-command para algo diferente de tmux; e se você não tiver configurado o tmux como seu shell de login, você precisa definir a opção default-command para evitar iniciar um shell de login dentro do tmux. Então, faça isso no seu ~/.tmux.conf para dizer ao tmux para iniciar um shell comum:

set-option -g default-command $SHELL

Então seu .bashrc será lido. Há outro problema com o bash, que não importa aqui se você configurar o tmux como recomendado acima, mas que aparecerá novamente se você efetuar login no modo de texto (em um console de texto ou por SSH). Bash lê ~/.bash_profile em shells de login e ~/.bashrc em shells interativos, mas somente se eles não forem shells de login. Para ler ~/.bashrc também em shells de login, se forem interativos, adicione isso ao seu ~/.bash_profile :

case $- in *i*) . ~/.bashrc;; esac
    
por 12.05.2012 / 04:35