Wenn dies bei Ihnen nicht funktioniert, stellen Sie sicher, dass Sie neu gestartet haben tmux. Scheint offensichtlich, aber ich brauchte eine gute Stunde, um es herauszufinden!
Andy Smith
27
Übrigens: tmux neu starten heißt killall tmux; tmux. Ich habe eine ganze Weile gebraucht, um das herauszufinden.
js-coder
5
Configs konnten neu geladen werden, ohne einen Server zu töten:bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
ДМИТРИЙ МАЛИКОВ
14
Oder einfach tmux source-file ~/.tmux.confvon der Kommandozeile aus starten .
Petr Pudlák
12
@ js-coder: um deinen tmux-server sauberer zu töten, empfehle ich dir tmux kill-serverstattdessen.
Chuim,
41
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.
Es ist nicht notwendig, user shell ( chsh -s) zu setzen, da tmux eine davon unabhängige Option anbietet.
Mahmoud Al-Qudsi
Ich fand es robuster, die Variable $ SHELL zu verwenden. Aber es fügt einen zusätzlichen Schritt und Verwirrung hinzu, also bevorzuge ich die akzeptierte Antwort.
DebugXYZ
Das ist besser als die akzeptierte Antwort. Mein zsh ist nicht in / bin / zsh installiert.
HappyFace
20
Lassen Sie diese Zeile im unteren Bereich Ihrer ~/.tmux.conf
Äh, gibt es Anzeichen dafür, dass re5et (das OP) auf einem Mac ausgeführt wird, oder ist dieses Wrapper-Programm installiert?
Chris Johnsen
1
Ich denke, diese Antwort funktioniert nur für Mac OS X
EhevuTov
5
tmux kill-serverist der Befehl, alle tmux-Server zu beenden
Keith Smiley
1
Obwohl es nicht die Antwort war, nach der das OP gefragt hat, bin ich in diesem Thread gelandet und in der Tat bin ich unter OS X und benutze diesen Wrapper. Dies ist die Lösung, die ich brauchte. also vielen Dank!
Jose Alban
1
Wie unterscheidet sich das von set-option -g default-shell ? Das oben Genannte scheint nicht mit der Fish Shell zu funktionieren.
Tommy
5
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 shellset-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.
Ich bin nicht sicher, warum dies abgelehnt wurde. Es scheint richtig zu sein: Ein häufiges Problem ist die Verwendung einer anderen Shell für z. B. iTerm, aber das Verlassen der Login-Shell, /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.
Sam Brightman
Ja, vielleicht env SHELL=/usr/bin/zsh tmuxist es besser? (hat die Antwort aktualisiert).
Antworten:
in
~/.tmux.conf
oder/etc/tmux.conf
. Funktioniert auf Fedora.Möglicherweise müssen Sie tmux mit neu starten
killall tmux; tmux
quelle
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:
Das Folgende in Ihre ~ / .tmux.conf einzufügen, ist eine robustere Option für jede Shell.
quelle
chsh -s
) zu setzen, da tmux eine davon unabhängige Option anbietet.Lassen Sie diese Zeile im unteren Bereich Ihrer
~/.tmux.conf
Nachdem Sie das hinzugefügt haben, töten Sie Ihren tmux-Server und starten Sie ihn neu, und alles sollte funktionieren.
quelle
tmux kill-server
ist der Befehl, alle tmux-Server zu beendenset-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:
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 danntmux
neu zu starten tmux.quelle
Verwendung
chsh(1)
:quelle
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
quelle
tmux scheint die
SHELL
Umgebungsvariable zu verwenden , daher sollte Folgendes funktionieren:oder
quelle
/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 erdefault-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
quelle
Die akzeptierte Antwort hat bei mir nicht funktioniert.
Ich musste beides schreiben
und
in my
~/.tmux.conf
- Vergiss nichttmux kill-server; tmux
, die tmux.conf neu zu ladenIch 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.
quelle
Für mich musste ich ersetzen:
mit
in
.tmux.conf
und Befehl ausführentmux kill-server; tmux
quelle
set-option -g
anstelle von verwendet habeset -g
. verschiedene Versionen von tmux höchstwahrscheinlichset
ist ein Alias fürset-option
.