Начните новый сеанс изнутри tmux с помощью ZSH_TMUX_AUTOSTART=true
Я включил плагин tmux в oh-my-zsh с помощью ZSH_TMUX_AUTOSTART=true
и теперь каждый раз, когда я открываю терминал, я присоединяюсь к сеансу. Эта часть действительно хороша.
Проблема в том, что теперь я не могу начать новый сеанс и получить доступ к оболочке.
Есть ли способ начать новый сеанс, не отключая tmux plugi?
$ tmux new-session -s new
sessions should be nested with care, unset $TMUX to force
У меня есть открытый билет на github: https://github.com/robbyrussell/oh-my-zsh/issues/3192
2 ответа
tmuxinator
решил это:
tmuxinator start [project]
И это пробивает ток tmux
сессия прямо в новый.
Без -d
, new-session
автоматически присоединится к новому сеансу (вы, вероятно, не хотите вложенных сеансов *, таким образом, предупреждение). Вероятно, вы захотите создать новый "отдельный" сеанс, а затем переключить текущего клиента на этот новый сеанс. я не думаю new-session
имеет опцию для обработки этого варианта использования, но это довольно легко сделать с помощью небольшого количества сценариев оболочки:
tmux-new() {
if [[ -n $TMUX ]]; then
tmux switch-client -t "$(TMUX= tmux -S "${TMUX%,*,*}" new-session -dP "$@")"
else
tmux new-session "$@"
fi
}
# example usage:
tmux-new -s new
Если нет TMUX, то просто запустите tmux new …
, Иначе,
- снимите TMUX, чтобы избежать ошибки † при использовании
-S
указать на текущий сервер, - добавлять
-d
создать отдельный сеанс и - добавлять
-P
распечатать имя нового сеанса (для этого требуется tmux 1.8 или новее).
Выход (имя нового сеанса) затем передается switch-client
,
Если у вас нет tmux 1.8, вам, возможно, придется немного переработать его (например, заставить функцию принимать обязательный аргумент, который называет новый сеанс, чтобы вы могли передать его обоим new-session
а также switch-client
).
* У вас будет две строки состояния; сложно вводить команды tmux для внутреннего сеанса; и это может делать странные вещи, если вы переключаете внутреннего клиента для просмотра внешнего сеанса (подумайте: зеркальный зал).
† Может быть, предупреждение должно быть подавлено при использовании -d
...