tmux: reasignación de teclas al panel a la izquierda / derecha / arriba / abajo

12

Tmux le permite a uno moverse por los paneles usando Ctrl-b+ (→, ←, ↑, ↓).

Me gustaría reasignar esto a:

Ctrl-b+ Ctrl-(l, j, i, k).

Como referencia, el diseño de las teclas l,j,i,kes similar al de las teclas de flecha, pero son más fáciles de escribir sin mover la mano.

He estado editando algunas cosas aquí y allá en el .tmux.conf, pero no pude encontrar información sobre cómo volver a vincular los comandos anteriores.

Amelio Vazquez-Reina
fuente
44
man tmux | less -p select-pane
jasonwryan

Respuestas:

14

tmux list-keys(o prefix + ?en la configuración predeterminada) le dará asignaciones de teclas actuales en forma de comandos necesarios para configurarlas. Vea man tmux, el nombre del comando es bind-key(y es posible que desee eliminar los enlaces predeterminados con unbind-key).

También es posible que desee considerar una combinación más "estándar" hjkl , conocida de viy clones (todas las teclas en la fila de inicio), especialmente si es un mecanógrafo rápido.

Peterph
fuente
11

Si desea apegarse a la navegación tipo vim, sería útil reasignar resize-panetambién:

# vim-like pane resizing  
bind -r C-k resize-pane -U
bind -r C-j resize-pane -D
bind -r C-h resize-pane -L
bind -r C-l resize-pane -R

# vim-like pane switching
bind -r k select-pane -U 
bind -r j select-pane -D 
bind -r h select-pane -L 
bind -r l select-pane -R 

# and now unbind keys
unbind Up     
unbind Down   
unbind Left   
unbind Right  

unbind C-Up   
unbind C-Down 
unbind C-Left 
unbind C-Right

Te mostraré mi .tmux.confcomo referencia

Y, por cierto, no olvides reasignar el 'horizontal-split'en caso de que lo tengas en la htecla ya que interferirá con tu pane-resizey pane-switch.

Daniel Andrei Mincă
fuente
3
Solo una nota: el "-r" le permite hacer PREFIJO y luego presionar varias veces el comando enlazado: por ejemplo: CTRL-B CTRL-J CTRL-J CTRL-Jextenderá el panel actual en 3 líneas en lugar de:CTRL-B CTRL-J CTRL-B CTRL-J CTRL-B CTRL-J
gbin