Alias ​​e tmux


12

Alias ​​definiti in .bash_aliasese .bashrcnon funzionanti tmux.

Questo può essere modificato in alcune configurazioni, quindi gli alias funzionano sotto tmux?


2
Sei sicuro che il problema sia presente tmux? Uso tmux da circa un anno e non ho riscontrato alcun problema con gli alias. Prova ad aggiungere set -xall'inizio del tuo .bashrced esegui il tmuxcomando source ~/.bashrc. Forse troverai errori e risolverai il tuo problema.
corsa

Risposte:


9

tmuxavvia una shell di login per impostazione predefinita, quindi ~/.bashrcnon verrà eseguita (che quindi esegue il sorgente ~/.bash_aliases. È necessario eseguire il source ~/.bashrcdal proprio ~/.bash_profile. Vedere la INVOCATIONsezione di man bash.


19

( La risposta di Chris Down ha la spiegazione giusta ma non una buona soluzione)

Il problema deriva da una combinazione di un bug di progettazione bash e un bug di progettazione tmux.

Per impostazione predefinita, tmux avvia una shell di accesso in ogni finestra. Questo non ha alcun senso: se hai impostato tmux come shell di accesso, devi impostare l' default-commandopzione su qualcosa di diverso da tmux; e se non hai impostato tmux come shell di accesso, devi impostare l' default-commandopzione per evitare di avviare una shell di accesso all'interno di tmux. Quindi ~/.tmux.confmetti il broncio nel tuo per dire a tmux di avviare una shell normale:

set-option -g default-command $SHELL

Allora la tua .bashrcverrà letta. C'è un altro problema con bash, che non ha importanza se si configura tmux come raccomandato sopra, ma che riapparirà se si accede in modalità testo (su una console di testo o su SSH). Bash legge ~/.bash_profilenelle shell di accesso e ~/.bashrcnelle shell interattive, ma solo se non sono shell di accesso. Per leggere ~/.bashrcanche nelle shell di login se sono interattive, aggiungi questo al tuo ~/.bash_profile:

case $- in *i*) . ~/.bashrc;; esac

+! Ci è voluta l'ultima parte per correggere i miei alias e il prompt di PS1, ma è stato così!
Michael Durrant,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.