Sur une nouvelle configuration, tmux utilise bash au lieu de ma valeur par défaut (zsh).
Comment puis-je le forcer à utiliser zsh?
Sur une nouvelle configuration, tmux utilise bash au lieu de ma valeur par défaut (zsh).
Comment puis-je le forcer à utiliser zsh?
Réponses:
set-option -g default-shell /bin/zsh
dans ~/.tmux.conf
ou /etc/tmux.conf
. Fonctionne sur Fedora.
Vous devrez peut-être redémarrer tmux avec killall tmux; tmux
tmux
. Cela semble évident, mais il m'a fallu une bonne heure pour comprendre!
killall tmux; tmux
. Il m'a fallu un bon bout de temps pour comprendre.
bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
tmux source-file ~/.tmux.conf
depuis la ligne de commande.
tmux kill-server
place.
Tout d’abord, assurez-vous que votre shell par défaut est correctement défini sur zsh en l’exécutant dans votre ligne de commande:
chsh -s $(`which zsh`) $USER
Placer le texte suivant dans votre ~ / .tmux.conf est une option plus robuste pour n’importe quel shell.
set-option -g default-shell $SHELL
chsh -s
) car tmux offre une option indépendante de celle-ci.
Déposez cette ligne au bas de votre ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"
Après avoir ajouté cela, tuez et redémarrez votre serveur tmux et tout devrait fonctionner.
tmux kill-server
est la commande pour mettre fin à tous les serveurs tmux
set-option -g default-shell
t-il? ce qui précède ne semble pas fonctionner avec la coquille de poisson.
Si vous voulez forcer tmux à utiliser le même shell que celui spécifié dans votre variable d'environnement, vous pouvez utiliser:
# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
dans votre ~/.tmux.conf
ou /etc/tmux.conf
.
Pour obtenir le changement de réellement prendre effet, vous devrez peut - être tmux kill-server
puis tmux
redémarrer tmux.
tmux semble utiliser la SHELL
variable d'environnement, les éléments suivants devraient donc fonctionner:
SHELL=/usr/bin/zsh tmux
ou
env SHELL=/usr/bin/zsh tmux
/bin/bash
afin d’éviter toute interruption non itéractive. iTerm ne définira $SHELL
pas le nouveau nom du shell (vous ne savez pas pourquoi), et son initialisation sur bash le définira sur le shell de connexion s'il n'est pas défini au démarrage. tmux utilise ensuite cette valeur si default-shell
n'est pas défini explicitement.
env SHELL=/usr/bin/zsh tmux
- être que c'est mieux? (mis à jour la réponse).
La déconnexion et la connexion à nouveau ont résolu mon problème. Lorsque $SHELL
cela a été répété, il était toujours, /bin/bash
mais après la déconnexion, il a été remplacé par/usr/bin/zsh
Ajoutez ceci dans votre ~/.tmux.conf
set -g default-command /usr/local/bin/fish
La réponse acceptée n'a pas fonctionné pour moi.
Je devais écrire les deux
set -g default-shell "/bin/bash"
et
set -g default-commanmd "/bin/bash"
dans mon ~/.tmux.conf
- N'oubliez pas tmux kill-server; tmux
de recharger le fichier tmux.conf
J'utilise tmux -V
2.6 sous Ubuntu 18 dans l'émulateur gnome-shell.
J'ai également amélioré tmux avec https://github.com/samoshkin/tmux-config . Check it out, c'est vraiment cool.
Pour moi je devais remplacer:
default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"
avec
set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"
dans .tmux.conf
et exécuter la commandetmux kill-server; tmux
set-option -g
au lieu de set -g
. versions les plus probables de tmux
set
est un alias pour set-option
.