Pense bête tmux

Published: 24-06-2015

Updated: 04-06-2017

By: Maxime de Roucy

tags: tmux

Quelques notes sur tmux.

commandes

kill-session -t dst-sess
permet de supprimer des « session »
join-pane -t dst-pane
split dst-pane et déplace le pane courant (qui peut être une window) dans le nouvelle espace
join-pane -s src-pane
split le pane courant et déplace src-pane (qui peut être une window) dans le nouvelle espace
display-pane prefix+q
affiche le numéro des pane de la window courante (utile pour pouvoir spécifier de façon précise dst-pane ou src-pane)
break-pane prefix+!
détache le pane courant et en fait une window
choose-session prefix+s
list les sessions et permet d’en séléctionner une
choose-window prefix+w
list les windows et permet d’en séléctionner une

split

Par défaut les split sont vertical et le pane crée est à droite, on peut modifier ça avec les options -h et -b.

dst-pane, src-pane, dest-win…

Pour désigner une session, une window ou un pane de façon unique la syntaxe est « session:window.pane ». En l’absence de ces séparateur tmux essai de « deviner » ce que l’utilisateur lui demande… lorsque cela est ambigue il ne fait rien (encore heureux). Pour désigner une window « 2 » dans la session courante on peut utilisé « 2 », mais si la session « 2 » exist il est préférable d’utiliser « :2 ».

Par exemple si on veut déplacer le pane 3 de la window 1 de la session courante « :1.3 » dans le nouvelle emplacement d’un split du pane courant de la window courante :

join-pane -s :1.3

synchronize-pane

Source : Sync tmux panes

Pour diffuser/lancer une commande sur plusieurs pane d’une même window vous pouvez utiliser la commande :set-window-option synchronize-panes. Tous les caractères entrées dans un des panes de la window seront dupliqué dans les autres panes.

Pour désactiver la synchronisation lancer exactement la même commande. C’est un simple « toggle ».

tmux.conf

Mon fichier /etc/tmux.conf

# vim crtl-→
set-option -g xterm-keys on

# set prefix to Ctrl-q
set-option -g prefix C-q
unbind C-b

# send-prefix (for nested conf) to Ctrl-t
bind-key -n C-t send-prefix

# pour garder le même working directory au split
bind-key '"' split-window -c "#{pane_current_path}"
bind-key % split-window -h -c "#{pane_current_path}"
bind-key c new-window -c "#{pane_current_path}"

# temps d'attente entre deux event clavier marqué comme répétable
set-option -g repeat-time 200

# Start windows and panes at 1, not 0
set-option -g base-index 1
set-window-option -g pane-base-index 1

# use vi binding
# / : search
# n : next
# …
set-window-option -g mode-keys vi

# tmux will rename the window title according to the current running program (the title come from tmux),
# excepte if a window name is explicitely set by user with a tmux cmd
set-window-option -g automatic-rename on
# don't allow PROGRAM to rename the window title
set-window-option -g allow-rename off