В новой настройке 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.
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
лучше? (обновил ответ).
Используйте chsh(1)
:
chsh -s /bin/zsh $USER
Добавьте это в свой ~/.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
.