Answers:
最快的方法(假设您ctrl-b
用作命令前缀)是:
ctrl-b :new
要创建一个新的会话,然后
ctrl-b s
以交互方式选择并附加到会话。
ctrl-b $
Ctrl-b :new -s <name>
为新会话命名。
该脚本将检查会话是否存在。如果会话不存在,请创建新会话并附加到该会话。如果确实存在会话,则什么也不会发生,我们将附加到该会话。随时用项目名称替换`〜/ development'。
$ touch ~/development && chmod +x ~/development
# ~/development
tmux has-session -t development
if [ $? != 0 ]
then
tmux new-session -s development
fi
tmux attach -t development
让我们创建两个分离的会话,列出它们,将其附加到一个,然后在tmux循环中进行会话。
tmux new -s name -d
从tmux内部工作,因为我们正在创建一个新的分离会话。否则会出现嵌套错误。
$ tmux new -s development -d
$ tmux new -s foo -d
$ tmux ls
> development: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54]
> foo: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54]
$ tmux attach -t
$ tmux ls
> development: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54] (attached)
> foo: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54]
我们现在位于目标会议的内部,或者被称为附加到我们的目标会议。如果我们尝试在连接时创建新会话,则会导致嵌套错误。
$ tmux new -s bar
> sessions should be nested with care, unset $TMUX to force
为了解决这个问题,我们创建了一个新的独立会话。例如,
$ tmux new -s bar -d
$ tmux ls
> development: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54] (attached)
> foo: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54]
> bar: 1 windows (created Wed Jan 13 17:19:35 2016) [204x54]
循环(切换)会话
Prefix
(
上届会议Prefix
)
下届会议注: Prefix
为Ctrl-b
默认。您可以绑定Prefix
到Ctrl-a
Mac OSX ,并且可以将Caps Lock更改为ctrlsystem preferences > keyboard > modifier keys
尝试在不分离的情况下附加到会话将导致错误。
$ tmux attach -t development
> sessions should be nested with care, unset $TMUX to force
而是使用命令模式,Prefix
:
然后键入attach -t session_name
并按Enter。
使用这个对我有用:
TMUX= tmux new-session -d -s name
tmux switch-client -t name
在TMUX=
这样TMUX不会抛出第一线需要sessions should be nested with care, unset $TMUX to force
的信息。
TMUX=`tmux new-session -d -s name`