In una nuova configurazione, tmux sta usando bash invece del mio default (zsh).
Come posso forzarlo ad usare zsh?
In una nuova configurazione, tmux sta usando bash invece del mio default (zsh).
Come posso forzarlo ad usare zsh?
Risposte:
set-option -g default-shell /bin/zsh
in ~/.tmux.conf
o /etc/tmux.conf
. Funziona su Fedora.
Potrebbe essere necessario riavviare tmux con killall tmux; tmux
tmux
. Sembra ovvio ma mi ci è voluta un'ora buona per capire!
killall tmux; tmux
. Mi ci è voluto un po 'per capire.
bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
tmux source-file ~/.tmux.conf
dalla riga di comando.
tmux kill-server
invece.
Per prima cosa assicurati che la tua shell predefinita sia impostata correttamente su zsh eseguendo questo nella tua riga di comando:
chsh -s $(`which zsh`) $USER
Inserire il seguente in ~ / .tmux.conf è un'opzione più solida per qualsiasi shell.
set-option -g default-shell $SHELL
chsh -s
) poiché tmux offre un'opzione indipendente da quella.
Rilascia questa riga nella parte inferiore della tua ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"
Dopo averlo aggiunto, uccidi e riavvia il server tmux e tutto dovrebbe funzionare.
tmux kill-server
è il comando per terminare tutti i server tmux
set-option -g default-shell
? quanto sopra non sembra funzionare con la conchiglia di pesce.
Se si desidera forzare tmux a utilizzare la stessa shell specificata nella variabile di ambiente, è possibile utilizzare:
# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
nel tuo ~/.tmux.conf
o /etc/tmux.conf
.
Per rendere effettiva la modifica, potrebbe essere necessario tmux kill-server
e quindi tmux
riavviare tmux.
tmux sembra usare la SHELL
variabile d'ambiente, quindi dovrebbe funzionare quanto segue:
SHELL=/usr/bin/zsh tmux
o
env SHELL=/usr/bin/zsh tmux
/bin/bash
per garantire che non si verifichino interruzioni non iterattive. iTerm non imposterà $SHELL
il nuovo nome della shell (incerto perché) e l'inizializzazione bash lo imposterà sulla shell di login se non impostato all'avvio. tmux utilizza quindi questo valore se default-shell
non è impostato in modo esplicito.
env SHELL=/usr/bin/zsh tmux
è meglio? (aggiornata la risposta).
Utilizzare chsh(1)
:
chsh -s /bin/zsh $USER
Disconnettersi e riconnettersi hanno risolto il mio problema. Quando echeggiato $SHELL
era ancora, /bin/bash
ma dopo il log-out è stato modificato in/usr/bin/zsh
Aggiungi questo al tuo ~/.tmux.conf
set -g default-command /usr/local/bin/fish
La risposta accettata non ha funzionato per me.
Ho dovuto scrivere entrambi
set -g default-shell "/bin/bash"
e
set -g default-commanmd "/bin/bash"
nel mio ~/.tmux.conf
- Non dimenticare di tmux kill-server; tmux
, per ricaricare tmux.conf
Sto usando tmux -V
2.6 sotto Ubuntu 18 nell'emulatore gnome-shell.
Ho anche migliorato tmux con https://github.com/samoshkin/tmux-config . Dai un'occhiata, è davvero bello.
Per me ho dovuto sostituire:
default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"
con
set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"
nel .tmux.conf
comando ed eseguitmux kill-server; tmux
set-option -g
invece di set -g
. versioni diverse di tmux molto probabilmente
set
è un alias per set-option
.