Encontro-me muitas vezes fazendo a mesma coisa com tmux
:
cd
para um determinado diretório.tmux
- Renomeie a janela para o que estou fazendo.
- Divida a janela verticalmente 50%.
- Inicie um processo na janela esquerda.
- Inicie outro processo na janela da direita.
- Lucro.
Existe uma maneira de automatizar o lançamento de tudo isso para que eu possa executar um único comando e obter a janela que estou procurando?
Respostas:
O Archwiki salva o dia! A inicialização da sessão na página tmux fornece um exemplo.
Dito isto, em vez de iniciar o tmux como
tmux
, nomearátmux new -s name
a sessão quando for iniciada, em vez de fornecer um número.Inicialização da sessão
Você pode fazer o tmux abrir uma sessão com janelas pré-carregadas, incluindo esses detalhes no seu ~ / .tmux.conf:
Para iniciar uma sessão com janelas divididas (vários painéis), inclua o comando splitw abaixo do neww que você deseja dividir; portanto:
abriria duas janelas, a segunda com o nome foo / bar e seria dividida verticalmente ao meio (50%) com o foo correndo acima da barra. O foco estaria na janela 2 (foo / bar), painel superior (foo).
Para gerenciar várias sessões, origine arquivos de sessão separados do seu arquivo conf:
fonte
A resposta de Rob é ótima e explica exatamente como lidar com sessões no próprio tmux. Agora, se você não se importa 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 definir todas as janelas e painéis, juntamente com seus layouts e comandos padrão para execução dentro deles. Também permite definir um diretório de projeto padrão, soquete específico e daemons que devem estar em execução (por exemplo, mysql). Além disso, ele fornece um método fácil de anexar a eles: basta executar
mux [session-name]
e ele iniciará a sessão ou anexará a ela, se já estiver em execução. Eu tenho usado por um tempo agora e adoro (obrigado aziz !).https://github.com/aziz/tmuxinator
fonte