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.conf
o /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.conf
desde la línea de comando.
tmux kill-server
lugar.
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-server
es 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.conf
o /etc/tmux.conf
.
Para que el cambio surta efecto, es posible que deba reiniciar tmux tmux kill-server
y luego tmux
reiniciarlo.
Parece que tmux usa la SHELL
variable de entorno, por lo que lo siguiente debería funcionar:
SHELL=/usr/bin/zsh tmux
o
env SHELL=/usr/bin/zsh tmux
/bin/bash
para garantizar que no haya interrupciones no iterativas. iTerm no se establecerá $SHELL
con 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-shell
no se establece explícitamente.
env SHELL=/usr/bin/zsh tmux
es 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/bash
pero 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; tmux
de recargar tmux.conf
Estoy usando tmux -V
2.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 -g
lugar de set -g
. diferentes versiones de tmux muy probablemente
set
es un alias para set-option
.