Como criar o script
Este script verificará se existe uma sessão. Se a sessão não existir, crie uma nova sessão e anexe a ela. Se a sessão não existe nada acontece e nós anexamos a essa sessão. Sinta-se à vontade para substituir `~ / development 'pelo nome do projeto.
$ touch ~/development && chmod +x ~/development
# ~/development
tmux has-session -t development
if [ $? != 0 ]
then
tmux new-session -s development
fi
tmux attach -t development
Nova sessão do terminal
Vamos criar duas sessões separadas, listá-las, anexar a uma e então, de dentro do tmux, percorrer as sessões.
tmux new -s name -d
funciona de dentro do tmux porque estamos criando uma nova sessão separada. Caso contrário, você obterá um erro de aninhamento.
$ 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]
Nova sessão de dentro do tmux
Agora estamos dentro ou mais conhecidos como anexados à nossa sessão de destino. Se tentarmos criar uma nova sessão enquanto anexada, isso resultará em um erro de aninhamento.
$ tmux new -s bar
> sessions should be nested with care, unset $TMUX to force
Para resolver isso, criamos uma nova sessão separada. por exemplo,
$ 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]
Ciclo (troca) de sessões
Prefix
(
sessão anterior
Prefix
)
próxima sessão
nota: Prefix
é Ctrl-b
por padrão. Você pode ligar Prefix
para Ctrl-a
e no Mac OSX você pode mudar a tecla Caps Lock para ctrlsystem preferences > keyboard > modifier keys
Anexe a uma sessão usando o modo de comando enquanto estiver dentro do tmux
Tentar conectar a uma sessão sem desconectar resultará em erro.
$ tmux attach -t development
> sessions should be nested with care, unset $TMUX to force
Em vez disso, use o modo de comando Prefix
:
, digite attach -t session_name
e pressione Enter.