Seu arquivo de configuração está funcionando, mas há algumas complicações.
Comandos de curta duração
Primeiro, os comandos que você está iniciando (instâncias de ls ) terminam de rodar muito rapidamente. As janelas e os painéis dos comandos são criados, mas desaparecem assim que cada comando sai.
Se o seu objetivo é realmente usar esses comandos "one shot" em sua configuração final, provavelmente você deve usar a opção de janela remain-on-exit
(e possivelmente a opção de sessão set-remain-on-exit
para fornecer um padrão para todas as janelas criadas em a sessão). Quando remain-on-exit
é definido para uma janela, não desaparecerá quando o comando sair. Você provavelmente vai querer mapear o respawn-window
para uma chave (nota: respawn-window
irá reaparecer o comando original; respawn-pane
também está disponível em tmux 1.5 para reabrir painéis individuais).
bind-key R respawn-window
# set global r-o-e so that initial window of initial session gets it
set -g set-remain-on-exit on
# create a session and its windows/panes
new -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# restore global r-o-e
set -g set-remain-on-exit off
# let session r-o-e inherit from global value for future windows
set -u set-remain-on-exit
Ou, se você não se importar com a sua janela inicial, sendo o número 1 em vez do número 0, podemos evitar alterar o valor global:
bind-key R respawn-window
# create a session with a throw-away window
new true
# for future windows, stay open after the command exits
set set-remain-on-exit on
# create the windows we really want
neww -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# for future windows, revert r-o-e to global value
set -u set-remain-on-exit
Se você estava usando apenas ls
como um comando placeholder simplificado e você realmente pretende gerar algum tipo de comando interativo em suas janelas / painéis, provavelmente você deve gerar o comando que deseja executar. Se o comando pretendido demorar muito para ser inicializado para ser usado durante o teste tmux , substitua um shell ou outro comando interativo simples (por exemplo, top
, sqlite3
, etc.).
new-session
é o comando padrão
Segundo, executar tmux sem um argumento de comando (por exemplo, tmux
) é equivalente a usar o comando new-session
(por exemplo, tmux
é o mesmo que tmux new-session
). Seu .tmux.conf
cria uma sessão para suas janelas / painéis ( new
é um alias para new-session
) e outra sessão está sendo criada para o comando implícito new-session
especificado iniciando tmux sem um argumento de comando. Se você estiver usando a barra de status padrão, verá um [1]
no lado esquerdo da barra de status quando estiver na sessão "extra" (a sessão inicial criada no .tmux.conf
é o número 0).
Se você quiser evitar a criação da sessão extra, use tmux attach
em vez de tmux
. Os comandos do seu .tmux.conf
serão executados, criando a sessão 0 e, em seguida, o cliente será anexado a essa sessão em vez de criar um novo.