En una nueva configuración, tmux está usando bash en lugar de mi predeterminado (zsh).
¿Cómo puedo forzarlo a usar zsh?
En una nueva configuración, tmux está usando bash en lugar de mi predeterminado (zsh).
¿Cómo puedo forzarlo a usar zsh?
Respuestas:
set-option -g default-shell /bin/zsh
en ~/.tmux.confo /etc/tmux.conf. Funciona en Fedora.
Puede que tenga que reiniciar tmux con killall tmux; tmux
tmux. Parece obvio, ¡pero me tomó una buena hora descubrirlo!
killall tmux; tmux. Me llevó bastante tiempo darme cuenta.
bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
tmux source-file ~/.tmux.confdesde la línea de comando.
tmux kill-serverlugar.
Primero asegúrese de que su shell predeterminado esté configurado correctamente en zsh ejecutando esto en su línea de comando:
chsh -s $(`which zsh`) $USER
Colocar los siguientes en su ~ / .tmux.conf es una opción más robusta para cualquier shell.
set-option -g default-shell $SHELL
chsh -s) ya que tmux ofrece una opción independiente de eso.
Suelta esta línea en la parte inferior de tu ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"
Después de agregar eso, elimine y reinicie su servidor tmux y todo debería funcionar.
tmux kill-serveres el comando para finalizar todos los servidores tmux
set-option -g default-shell ? lo anterior no parece funcionar con la concha de pescado.
Si desea forzar a tmux a usar el mismo shell especificado en su variable de entorno, puede usar:
# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
en tu ~/.tmux.confo /etc/tmux.conf.
Para que el cambio surta efecto, es posible que deba reiniciar tmux tmux kill-servery luego tmuxreiniciarlo.
Parece que tmux usa la SHELLvariable de entorno, por lo que lo siguiente debería funcionar:
SHELL=/usr/bin/zsh tmux
o
env SHELL=/usr/bin/zsh tmux
/bin/bashpara garantizar que no haya interrupciones no iterativas. iTerm no se establecerá $SHELLcon el nuevo nombre de shell (no estoy seguro de por qué), y la inicialización de bash lo establecerá en el shell de inicio de sesión si no está configurado al inicio. tmux luego usa este valor si default-shellno se establece explícitamente.
env SHELL=/usr/bin/zsh tmuxes mejor? (actualizado la respuesta).
Cerrar sesión y volver a iniciar sesión solucionó mi problema. Cuando se hizo eco $SHELL, todavía estaba, /bin/bashpero después de cerrar sesión se cambió a/usr/bin/zsh
Agregue esto a su ~/.tmux.conf
set -g default-command /usr/local/bin/fish
La respuesta aceptada no funcionó para mí.
Tuve que escribir ambos
set -g default-shell "/bin/bash"
y
set -g default-commanmd "/bin/bash"
en mi ~/.tmux.conf- No te olvides tmux kill-server; tmuxde recargar tmux.conf
Estoy usando tmux -V2.6 bajo Ubuntu 18 en el emulador gnome-shell.
También mejoré tmux con https://github.com/samoshkin/tmux-config . Compruébalo, es realmente genial.
Para mí tuve que reemplazar:
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"
entrar .tmux.conf
y ejecutar el comandotmux kill-server; tmux
set-option -glugar de set -g. diferentes versiones de tmux muy probablemente
setes un alias para set-option.