Aliase und tmux


12

Aliase definiert in .bash_aliasesund .bashrcfunktionieren nicht in tmux.

Kann dies in einigen Konfigurationen geändert werden, sodass die Aliase unter funktionieren tmux?


2
Sind Sie sicher, dass das Problem vorliegt tmux? Ich benutze tmux ungefähr im Jahr und habe keine Probleme mit Aliasen gesehen. Versuchen Sie, set -xam Anfang Ihres Befehls einzufügen .bashrcund den tmuxBefehl auszuführen source ~/.bashrc. Möglicherweise finden Sie Fehler und Ihr Problem wird dadurch behoben.
Ansturm

Antworten:


9

tmuxStartet standardmäßig eine Anmeldeshell, ~/.bashrcwird also nicht ausgeführt (was anschließend quellt ~/.bash_aliases. Sie müssen ~/.bashrcvon Ihrer Quelle ~/.bash_profile. Siehe INVOCATIONAbschnitt von man bash.


19

( Chris Downs Antwort hat die richtige Erklärung, ist aber keine gute Lösung)

Ihr Problem rührt von einer Kombination eines Bash-Design-Fehlers und eines TMUX-Design-Fehlers her.

Standardmäßig startet tmux in jedem Fenster eine Login-Shell. Dies macht keinen Sinn: Wenn Sie tmux als Anmeldeshell festgelegt haben, müssen Sie die default-commandOption auf einen anderen Wert als tmux festlegen. Wenn Sie tmux nicht als Anmeldeshell festgelegt haben, müssen Sie die default-commandOption festlegen , um das Starten einer Anmeldeshell in tmux zu vermeiden. Also schreiben Sie dies in Ihr ~/.tmux.conf, um tmux anzuweisen, eine gewöhnliche Shell zu starten:

set-option -g default-command $SHELL

Dann wird dein .bashrcText gelesen. Es gibt ein weiteres Problem mit bash, das hier keine Rolle spielt, wenn Sie tmux wie oben empfohlen konfigurieren. Es tritt jedoch erneut auf, wenn Sie sich im Textmodus (auf einer Textkonsole oder über SSH) anmelden. Bash liest ~/.bash_profilein Login-Shells und ~/.bashrcin interaktiven Shells, jedoch nur, wenn es sich nicht um Login-Shells handelt. Um ~/.bashrcauch in Login-Shells zu lesen , ob diese interaktiv sind, fügen Sie Folgendes hinzu ~/.bash_profile:

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

+! Ich habe den letzten Teil gebraucht, um meine Aliase und die PS1-Eingabeaufforderung zu reparieren, aber es hat geklappt!
Michael Durrant
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.