У нових налаштуваннях 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 -V
2.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
.