Blog do Phil

Tecnologia e opinião

Usando tmux e vim para pair programming remoto

Há um tempo li o post do Gustavo Dutra e achei muito legal a possibilidade de fazer programação em par via terminal remoto. Usando o screen é possível compartilhar facilmente uma sessão do terminal e sair programando. Mas não consegui compartilhar informações de outras sessões abertas. Foi então que conheci o tmux.

image

Com tmux é possível criar sessões com várias “janelas” (inclusive com separação vertical e horizontal) e usar 256 cores sem problemas.

Seguindo o mesmo esquema do post do Gustavo, separei em “host” e “client”.

Host

Na máquina que servirá como servidor de desenvolvimento será preciso criar uma sessão:

1
$ tmux -2 -S /tmp/pair new-session -s PairProgramming

Os parâmetros significam:

  • -2 : Aceita 256 cores
  • -S : Cria o socket no caminho especificado (no caso, /tmp/pair)
  • new-session -s: Cria uma nova sessão com o nome atribuido (no caso, PairProgramming)

Você vai precisar dar permissão no arquivo socket criado:

1
$ chmod 777 /tmp/pair

Feito isso, é só abrir o vim e aguardar o client =)

Client

Para que funcione, o client precisa estar conectado ao host via ssh com um usuário qualquer (o importante é ter acesso ao arquivo socket em /tmp/pair).

Depois de conectado, basta executar o comando:

1
$ tmux -2 -S /tmp/pair attach-session -t PairProgramming

O parâmetro “attach-session” faz o client se conectar à uma sessão alvo (-t nome-da-sessao)

Comandos básicos do tmux

Para ativar algum comando do tmux, por padrão (é possível mudar)você precisa precionar Ctrl+b

Comandos básicos (assumindo que você esteja no Linux):

  • Ctrl+b ? # Lista todos comandos
  • Ctrl+b c # Cria nova janela
  • Ctrl+b n # Vai para próxima janela
  • Ctrl+b % # Divide a janela atual em duas verticais
  • Ctrl+b “seta para direita|esquerda” # Move entre as janelas divididas
  • Ctrl+b : # Abre o modo comando do tmux

Conclusão

É possível fazer muita coisa com o tmux. Para saber mais, sugiro que siga os links:

UPDATE (01/04/2013):

Chris Hunt palestrou na LA Ruby Conf 2013 sobre o Vim e Tmux. Ele faz o que este tutorial apresentou, e muito mais: https://www.youtube.com/watch?v=vHdiXoHKSgU

Comments