Alias ​​et tmux

12

Les alias définis dans .bash_aliaseset .bashrcne fonctionnent pas tmux.

Cela peut-il être modifié dans certaines configurations, de sorte que les alias fonctionnent sous tmux?

xralf
la source
2
Êtes-vous sûr que le problème existe tmux? J'utilise tmux depuis environ un an et je n'ai vu aucun problème avec les alias. Essayez d'ajouter set -xau début de votre .bashrcet exécutez la tmuxcommande source ~/.bashrc. Vous trouverez peut-être des erreurs et cela résoudra votre problème.
rush

Réponses:

9

tmuxlance un shell de connexion par défaut, il ~/.bashrcne sera donc pas exécuté (qui ensuite les sources ~/.bash_aliases. Vous devez source à ~/.bashrcpartir de votre ~/.bash_profile. Voir la INVOCATIONsection de man bash.

Chris Down
la source
19

( La réponse de Chris Down a la bonne explication mais pas une bonne solution)

Votre problème provient d'une combinaison d'un bogue de conception bash et d'un bogue de conception tmux.

Par défaut, tmux démarre un shell de connexion dans chaque fenêtre. Cela n'a aucun sens: si vous avez défini tmux comme shell de connexion, vous devez définir l' default-commandoption sur autre chose que tmux; et si vous n'avez pas défini tmux comme shell de connexion, vous devez définir l' default-commandoption pour éviter de démarrer un shell de connexion dans tmux. Alors faites la moue dans votre ~/.tmux.confpour dire à tmux de démarrer un shell ordinaire:

set-option -g default-command $SHELL

Ensuite, votre .bashrcsera lu. Il y a un autre problème avec bash, qui n'a pas d'importance ici si vous configurez tmux comme recommandé ci-dessus, mais qui réapparaîtra si vous vous connectez en mode texte (sur une console texte ou via SSH). Bash lit ~/.bash_profiledans les shells de connexion et ~/.bashrcdans les shells interactifs, mais uniquement s'ils ne sont pas des shells de connexion. Pour lire ~/.bashrcégalement dans les shells de connexion s'ils sont interactifs, ajoutez ceci à votre ~/.bash_profile:

case $- in *i*) . ~/.bashrc;; esac
Gilles 'SO- arrête d'être méchant'
la source
+! Il a fallu cette dernière partie pour corriger mes alias et mon invite PS1, mais ça l'a fait!
Michael Durrant