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.conf
oder /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.conf
von der Kommandozeile aus starten .
tmux kill-server
stattdessen.
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-server
ist 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.conf
oder /etc/tmux.conf
.
Um die Änderung zu erhalten , um tatsächlich wirksam wird, müssen Sie möglicherweise auf tmux kill-server
und dann tmux
neu zu starten tmux.
Verwendung chsh(1)
:
chsh -s /bin/zsh $USER
Abmelden und erneut anmelden hat mein Problem behoben. Wenn $SHELL
es wiedergegeben wurde /bin/bash
, wurde es nach dem Abmelden in geändert/usr/bin/zsh
tmux scheint die SHELL
Umgebungsvariable zu verwenden , daher sollte Folgendes funktionieren:
SHELL=/usr/bin/zsh tmux
oder
env SHELL=/usr/bin/zsh tmux
/bin/bash
um sicherzustellen, dass keine nicht-iterativen Unterbrechungen auftreten. iTerm wird nicht $SHELL
auf 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-shell
nicht explizit gesetzt ist.
env SHELL=/usr/bin/zsh tmux
ist 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 -V
2.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 -g
anstelle von verwendet habe set -g
. verschiedene Versionen von tmux höchstwahrscheinlich
set
ist ein Alias für set-option
.