Em uma nova configuração, o tmux está usando o bash em vez do meu padrão (zsh).
Como posso forçá-lo a usar o zsh?
Em uma nova configuração, o tmux está usando o bash em vez do meu padrão (zsh).
Como posso forçá-lo a usar o zsh?
Respostas:
set-option -g default-shell /bin/zsh
em ~/.tmux.conf
ou /etc/tmux.conf
. Funciona no Fedora.
Pode ser necessário reiniciar o tmux com killall tmux; tmux
tmux
. Parece óbvio, mas me levou uma boa hora para descobrir!
killall tmux; tmux
. Demorei um pouco para descobrir.
bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
tmux source-file ~/.tmux.conf
partir da linha de comando.
tmux kill-server
.
Primeiro, verifique se o shell padrão está definido corretamente como zsh, executando-o na linha de comando:
chsh -s $(`which zsh`) $USER
Colocar o seguinte no seu ~ / .tmux.conf é uma opção mais robusta para qualquer shell.
set-option -g default-shell $SHELL
chsh -s
), pois o tmux oferece uma opção independente disso.
Largue esta linha no fundo do seu ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"
Depois de adicionar isso, mate e reinicie o servidor tmux e tudo deve funcionar.
tmux kill-server
é o comando para acabar com todos os servidores tmux
set-option -g default-shell
? o acima não parece funcionar com a casca do peixe.
Se você deseja forçar o tmux a usar o mesmo shell especificado na sua variável de ambiente, você pode usar:
# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
no seu ~/.tmux.conf
ou /etc/tmux.conf
.
Para que a alteração entre em vigor, você pode precisar tmux kill-server
e tmux
reiniciar o tmux.
Sair e entrar novamente corrigiram meu problema. Quando ecoou $SHELL
, ainda estava /bin/bash
mas, após o logout, foi alterado para/usr/bin/zsh
O tmux parece usar a SHELL
variável de ambiente, portanto, o seguinte deve funcionar:
SHELL=/usr/bin/zsh tmux
ou
env SHELL=/usr/bin/zsh tmux
/bin/bash
para garantir que não haja interrupções não iterativas. O iTerm não será definido $SHELL
como o novo nome do shell (não sei por que) e a inicialização do bash o definirá para o shell de login, se não estiver definido na inicialização. O tmux usa esse valor se default-shell
não for definido explicitamente.
env SHELL=/usr/bin/zsh tmux
seja melhor? (atualizou a resposta).
Adicione isso ao seu ~/.tmux.conf
set -g default-command /usr/local/bin/fish
A resposta aceita não funcionou para mim.
Eu tive que escrever ambos
set -g default-shell "/bin/bash"
e
set -g default-commanmd "/bin/bash"
no meu ~/.tmux.conf
- Não esqueça tmux kill-server; tmux
de recarregar o tmux.conf
Estou usando o tmux -V
2.6 no Ubuntu 18 no emulador de gnome-shell.
Também aprimorei o tmux com https://github.com/samoshkin/tmux-config . Confira, é muito legal.
Para mim eu tive que substituir:
default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"
com
set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"
.tmux.conf
comando in e runtmux kill-server; tmux
set-option -g
vez de set -g
. versões diferentes do tmux provavelmente
set
é um alias para set-option
.