dimanche 28 octobre 2012

Avec TMUX, on respire

J'ai installé Tmux sur mon serveur de dev au boulot. Comme son nom l'indique presque, il s'agit d'un multiplexeur de terminal, comme GNU screen mais en plus vivant. Dans une session Tmux, vous pouvez splitter votre écran, ouvrir plusieurs fenêtres. Vous pouvez naviguer dans l'historique, faire du copier coller. Mieux, vous pouvez détacher votre session pour la reprendre plus tard.

Le plus beau est que la session reste ouverte en cas de déconnexion. Vous vous reconnectez, vous faites un tmux attach et là c'est cool : vous retrouvez tout ! Fini les cris dans l'openspace parce que vous vous êtes déco pour partir en réunion alors que vous aviez un traitement de 6 heures en cours. Fini le stress que la dame de ménage débranche l'ordi pour brancher son aspirateur lorsque vous lancez un traitement pendant la nuit !

Derniers trucs :

  • j'ai eu un souci sur Solaris pour lancer vi (le classique, pas le improuvède). Il se trouve que Tmux valorise la variable TERM à screen, ce qui perturbe un peu vi. Un export TERM=xterm avant de lancer vi règle le problème.
  • Si vous voulez facilement avoir les bindings vi dans le copy-mode de Tmux, faites un export EDITOR=vi avant de lancer votre session. Il y a aussi une option qu'on peut lui passer après le lancement, mais elle est compliquée à mémoriser.
  • Si vous n'avez pas tmux ni de quoi télécharger des binaires ou compiler des sources et que vous devez lancer un traitement long, pensez quand même au bon vieux nohup qui en cas de déconnexion de votre client, rattachera le process au PID 1 qui normalement ne peut pas se déconnecter, lui :).
Site officiel de tmux (oui, c'est moche)