Tmux

Como comentei em outro post, tenho usado muito o terminal ultimamente em meus trabalhos. E além do fish e o vim, um outra ferramenta que tem me proporcionado um bom desempenho é o tmux.

placeholder

O tmux oferece a possibilidade de, em uma única janela de terminal, oferecer diversas instâncias. O que auxilia bastante quando você tem que trabalhar com diversos terminais. Por exemplo, em um você pode deixar o compilador, em outro o editor de texto, em outro o ssh para o device remoto, e por ai vai. Juntando vários conceitos como sessões, janelas e painéis para realizar sua tarefa.

placeholder

Instalação

Você pode instalar via o gerenciador da sua distribuição linux. No caso do ubuntu sudo apt install tmux. Outra opção é baixar a versão mais atual e compilar em sua maquina.

Uso

O tmux é baseado em sessões. E em cada sessão pode haver diversos terminais, dentro de janelas, e dentro da janelas os painéis. Para abrir uma nova sessão use o comando:

tmux new

Pode-se dar um nome para a sessão com o seguinte comando:

tmux new -s [nome]

Para finalizar, pode-se finalizar com exit.

Para realizar comandos internos no tmux, ele usa de um prefixo, que consiste uma sequencia de teclas para que ele entenda que o comando é para ele próprio e não para uma outra aplicação rodando sobre ele. O padrão é CTRL + B.

Assim, para se enviar um comando ao tmux é preciso sempre usar o prefixo antes do comando.

<prefixo> + comando

Principais comandos

Uma das principais vantagens do tmux é que as sessões rodam independentemente se você esta conectado a uma sessão. Ou seja, caso algum comando demore muito, pode-se abrir uma sessão, colocar o comando para rodar, e sair da sessão, quando retornar a ela, o comando estará rodando normalmente como se tivesse apenas minimizado uma janela.

detach

<prefixo> + D

É o comando para desvincular o terminal do tmux. O tmux continua rodando em background, e com isso todas suas aplicações também. Mais ou menos como se minimizasse a aplicação do tmux.

attach

tmux attach -t [nome | numero da sessão]

Esse comando é realizado no terminal para se vincular com um sessão do tmux. Por isso não apareceu o uso do prefixo.

Listando todas as sessões

tmux ls

Este comando lista as sessões abertas.

Abrir uma nova janela

<prefixo> + c

Esse comando abre uma nova janela. Pode-se observá-la na barra de status do tmux, que por default fica na parte de baixo do terminal, e vinculada a ela um numero da janela, por exemplo: “0:vim”

<prefixo> + <numero da janela>

Com isso é possivel navegar entre as janelas abertas na sessão.

Criando painéis

Uma das funcionalidades mais usadas é o uso de painéis. Onde é possivel em uma mesma janela dividir a tela com varias instancias do terminal.

Para criar um painel horizontal, use o comando:

<prefixo> + " 

Para criar um painel vertical, use o comando:

<prefixo> + % 
<prefixo> + <setas direcionais>

Este comando permite mudar o foco entre os painéis.

Fechando um painel

CTRL + d

Ou pode-se tambem fechar com um simples comando exit.

Zoom em um painel

<prefixo> + z

Este comando faz o painel ocupar a tela toda. Para retornar pode-se usar o mesmo comando.

Redimensionar os painéis

<prefixo> + CTRL + <setas derecionais>

Este comando é usado para redimensionar os painéis montando uma tela como na imagem do post.

Documentação

Escrevi aqui os principais comandos que eu utilizo. Para ver todos os comandos possíveis do tmux acesse a página de documentação. Para visualizar uma lista de todos os comandos também pode-se usar o comando <prefixo> + ?.

Comments