Bei einem neuen Setup verwendet tmux bash anstelle von my default (zsh).
Wie kann ich die Verwendung von zsh erzwingen?
Bei einem neuen Setup verwendet tmux bash anstelle von my default (zsh).
Wie kann ich die Verwendung von zsh erzwingen?
Antworten:
set-option -g default-shell /bin/zsh
in ~/.tmux.confoder /etc/tmux.conf. Funktioniert auf Fedora.
Möglicherweise müssen Sie tmux mit neu starten killall tmux; tmux
tmux. Scheint offensichtlich, aber ich brauchte eine gute Stunde, um es herauszufinden!
killall tmux; tmux. Ich habe eine ganze Weile gebraucht, um das herauszufinden.
bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
tmux source-file ~/.tmux.confvon der Kommandozeile aus starten .
tmux kill-serverstattdessen.
Stellen Sie zunächst sicher, dass Ihre Standard-Shell ordnungsgemäß auf zsh eingestellt ist, indem Sie dies in Ihrer Befehlszeile ausführen:
chsh -s $(`which zsh`) $USER
Das Folgende in Ihre ~ / .tmux.conf einzufügen, ist eine robustere Option für jede Shell.
set-option -g default-shell $SHELL
chsh -s) zu setzen, da tmux eine davon unabhängige Option anbietet.
Lassen Sie diese Zeile im unteren Bereich Ihrer ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"
Nachdem Sie das hinzugefügt haben, töten Sie Ihren tmux-Server und starten Sie ihn neu, und alles sollte funktionieren.
tmux kill-serverist der Befehl, alle tmux-Server zu beenden
set-option -g default-shell ? Das oben Genannte scheint nicht mit der Fish Shell zu funktionieren.
Wenn Sie tmux zwingen möchten, dieselbe Shell zu verwenden, die in Ihrer Umgebungsvariablen angegeben ist, können Sie Folgendes verwenden:
# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
in deinem ~/.tmux.confoder /etc/tmux.conf.
Um die Änderung zu erhalten , um tatsächlich wirksam wird, müssen Sie möglicherweise auf tmux kill-serverund dann tmuxneu zu starten tmux.
Verwendung chsh(1):
chsh -s /bin/zsh $USER
Abmelden und erneut anmelden hat mein Problem behoben. Wenn $SHELLes wiedergegeben wurde /bin/bash, wurde es nach dem Abmelden in geändert/usr/bin/zsh
tmux scheint die SHELLUmgebungsvariable zu verwenden , daher sollte Folgendes funktionieren:
SHELL=/usr/bin/zsh tmux
oder
env SHELL=/usr/bin/zsh tmux
/bin/bashum sicherzustellen, dass keine nicht-iterativen Unterbrechungen auftreten. iTerm wird nicht $SHELLauf den neuen Shell-Namen gesetzt (unsicher warum), und die Bash-Initialisierung setzt ihn auf die Login-Shell, wenn sie beim Start nicht gesetzt wird. tmux verwendet diesen Wert dann, wenn er default-shellnicht explizit gesetzt ist.
env SHELL=/usr/bin/zsh tmuxist es besser? (hat die Antwort aktualisiert).
Fügen Sie dies in Ihre ~/.tmux.conf
set -g default-command /usr/local/bin/fish
Die akzeptierte Antwort hat bei mir nicht funktioniert.
Ich musste beides schreiben
set -g default-shell "/bin/bash"
und
set -g default-commanmd "/bin/bash"
in my ~/.tmux.conf- Vergiss nicht tmux kill-server; tmux, die tmux.conf neu zu laden
Ich benutze tmux -V2.6 unter Ubuntu 18 im Gnome-Shell-Emulator.
Ich habe tmux auch mit https://github.com/samoshkin/tmux-config erweitert . Probieren Sie es aus, es ist wirklich cool.
Für mich musste ich ersetzen:
default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"
mit
set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"
in .tmux.conf
und Befehl ausführentmux kill-server; tmux
set-option -ganstelle von verwendet habe set -g. verschiedene Versionen von tmux höchstwahrscheinlich
setist ein Alias für set-option.