У нових налаштуваннях tmux використовує bash замість мого замовчування (zsh).
Як змусити його використовувати zsh?
У нових налаштуваннях tmux використовує bash замість мого замовчування (zsh).
Як змусити його використовувати zsh?
Відповіді:
set-option -g default-shell /bin/zsh
в ~/.tmux.confабо /etc/tmux.conf. Працює над Fedora.
Можливо, вам доведеться перезапустити tmux за допомогою killall tmux; tmux
tmux. Здається, очевидно, але мені знадобилася гарна година, щоб розібратися!
killall tmux; tmux. Мені потрібно було досить довго розібратися.
bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
tmux source-file ~/.tmux.confз командного рядка.
tmux kill-serverзамість цього.
Спочатку переконайтеся, що для оболонки за замовчуванням встановлено належним чином zsh, запустивши це у своєму командному рядку:
chsh -s $(`which zsh`) $USER
Розміщення сліду у вашому ~ / .tmux.conf - більш надійний варіант для будь-якої оболонки.
set-option -g default-shell $SHELL
chsh -s), оскільки tmux пропонує опцію, незалежну від цього.
Опустіть цю лінію внизу вашого ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"
Після цього ви вкажіть і перезапустіть сервер tmux, і все повинно працювати.
tmux kill-server- команда припинити всі сервери tmux
set-option -g default-shell ? вище, здається, не працює з рибною оболонкою.
Якщо ви хочете змусити tmux використовувати ту саму оболонку, що вказана у змінній вашого середовища, ви можете використовувати:
# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
у вашому ~/.tmux.confабо /etc/tmux.conf.
Щоб зміни фактично набули чинності, вам може знадобитися, tmux kill-serverа потім tmuxперезапустити tmux.
Використання chsh(1):
chsh -s /bin/zsh $USER
tmux, як видається, використовує SHELLзмінну оточення, тому слід працювати наступне:
SHELL=/usr/bin/zsh tmux
або
env SHELL=/usr/bin/zsh tmux
/bin/bashщоб не забезпечити нічого неітерактивного розриву. iTerm не встановить $SHELLнове ім'я оболонки (не знаю чому), а ініціалізація bash встановить його в оболонку входу, якщо вона не встановлена при запуску. tmux тоді використовує це значення, якщо default-shellвоно не встановлено явно.
env SHELL=/usr/bin/zsh tmux, краще? (оновлена відповідь).
Додайте це до свого ~/.tmux.conf
set -g default-command /usr/local/bin/fish
Прийнята відповідь не спрацювала для мене.
Я повинен був написати і те, і інше
set -g default-shell "/bin/bash"
і
set -g default-commanmd "/bin/bash"
по-моєму ~/.tmux.conf- Не забувай tmux kill-server; tmux, щоб перезавантажити tmux.conf
Я використовую tmux -V2.6 під Ubuntu 18 в емуляторі gnome-shell.
Я також покращив tmux за допомогою https://github.com/samoshkin/tmux-config . Перевірте це, це дійсно круто.
Мені довелося замінити:
default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"
з
set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"
в .tmux.conf
і запустити командуtmux kill-server; tmux
set-option -gзамість цього set -g. різні версії tmux швидше за все
setпсевдонім для set-option.