Criando configurações de tmux lançáveis?

23

Eu me vejo frequentemente fazendo a mesma coisa com tmux :

  1. cd para um determinado diretório.
  2. tmux
  3. Renomeie a janela para o que estou fazendo.
  4. Divida a janela verticalmente em 50%.
  5. Inicie um processo na janela da esquerda.
  6. Inicie outro processo na janela da direita.
  7. Lucro

Existe uma maneira de eu automatizar o lançamento de tudo isso para que eu possa executar um único comando e obter a janela que estou procurando?

    
por Naftuli Kay 15.01.2013 / 18:04

2 respostas

21

Archwiki salva o dia! A inicialização da sessão na página do tmux dá um exemplo.

Dito isso, em vez de iniciar o tmux como tmux , tmux new -s name nomeará a sessão quando ela for iniciada, em vez de fornecer um número.

Inicialização da sessão

Você pode fazer com que o tmux abra uma sessão com janelas pré-carregadas incluindo esses detalhes em seu ~ / .tmux.conf:

new  -n WindowName Command
neww -n WindowName Command
neww -n WindowName Command

Para iniciar uma sessão com janelas divididas (vários painéis), inclua o comando splitw abaixo do neww que você deseja dividir; assim:

new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

abriria 2 janelas, a segunda das quais seria nomeada foo / bar e seria dividida verticalmente na metade (50%) com foo rodando acima da barra. O foco estaria na janela 2 (foo / bar), no painel superior (foo).

Note: Numbering for sessions, windows and panes starts at zero, unless you have specified a base-index of 1 in your .conf

Para gerenciar várias sessões, crie arquivos de sessão separados do seu arquivo conf:

# initialize sessions
bind F source-file ~/.tmux/foo
bind B source-file ~/.tmux/bar
    
por 15.01.2013 / 18:32
6
resposta é ótima e explica exatamente como lidar com as sessões dentro do próprio tmux. Agora, se você não se importar em usar uma ferramenta de terceiros, o tmuxinator é um ótimo projeto que ajuda a criar e gerenciar sessões facilmente .

Cada sessão é controlada por um arquivo de configuração que permite que você defina todas as suas janelas e painéis junto com seus layouts e comandos padrão para executá-los. Ele também permite que você defina um diretório de projeto padrão, soquete específico e daemons que precisam estar em execução (por exemplo, mysql). Ainda por cima, ele fornece um método fácil de anexar a eles: simplesmente execute mux [session-name] e ele iniciará a sessão ou anexará a ela se ela já estiver em execução. Eu tenho usado por um tempo agora e amo (obrigado aziz !).

link

    
por 18.01.2013 / 22:55

Tags