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.confou /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.confpartir 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.confou /etc/tmux.conf.
Para que a alteração entre em vigor, você pode precisar tmux kill-servere tmuxreiniciar o tmux.
Sair e entrar novamente corrigiram meu problema. Quando ecoou $SHELL, ainda estava /bin/bashmas, após o logout, foi alterado para/usr/bin/zsh
O tmux parece usar a SHELLvariável de ambiente, portanto, o seguinte deve funcionar:
SHELL=/usr/bin/zsh tmux
ou
env SHELL=/usr/bin/zsh tmux
/bin/bashpara garantir que não haja interrupções não iterativas. O iTerm não será definido $SHELLcomo 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-shellnão for definido explicitamente.
env SHELL=/usr/bin/zsh tmuxseja 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; tmuxde recarregar o tmux.conf
Estou usando o tmux -V2.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 -gvez de set -g. versões diferentes do tmux provavelmente
seté um alias para set-option.