¿Cómo reducir el tiempo de espera entre la tecla de prefijo y la tecla de comando en tmux?

¿Cómo reducir el tiempo de espera entre la tecla de prefijo y la tecla de comando en tmux?

Mi ~/.tmux.conf:

set -g prefix C-a
unbind C-b
bind C-a send-prefix

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

(para que las teclas de comando sean las mismas que las de GNOME Terminator)

La situación: después de dividir horizontalmente la ventana en 2 paneles, cambiar a un panel con la flecha Ctrl+ a Up, debo esperar un momento (2-3 segundos) para ver los comandos del historial del shell en este panel. Porque si presiono Upnuevamente, volverá al otro panel en lugar de mostrarme un comando de historial de shell. ¿Cómo puedo rechazar esto?

Respuesta1

Arriba, Abajo, Izquierda y Derecha ( select-panevinculaciones; y Control- y Meta- de las mismas teclas para resize-pane) son vinculaciones "repetibles" de forma predeterminada (realizadas a través de bind-key -r). Después de escribir la clave del prefijo y cualquier clave repetible, puede escribir cualquier otra clave repetible (sin tener que escribir el prefijo nuevamente) dentro del número de milisegundos especificado mediante la repeat-timeopción de sesión (el valor predeterminado es 500 ms).

Puede examinar el valor actual de repeat-timecon estos comandos de shell:

tmux show-options -g | grep \^repeat-time     # global
tmux show-options    | grep \^repeat-time     # this session

Si desea deshabilitar la repetición para la sesión actual, escriba su prefijo, dos puntos e ingrese este comando:

set-option repeat-time 0

O bien, es posible que pueda encontrar un valor cómodo distinto de cero. Si realmente tiene un valor de alrededor de 2000 (es decir, 2 segundos), supongo que se está configurando en /etc/tmux.conf.

Si desea deshabilitar la repetición (o cambiar el tiempo de espera) para todas sus sesiones, establezca el valor global con este comando:

set-option -g repeat-time 0

Si ha establecido un valor por sesión, deberá desactivarlo antes de que el valor global entre en vigor en esa sesión ( set-option -u repeat-time). Es posible que desee establecer el valor global a través de su .tmux.confsi prefiere dejarlo desactivado "permanentemente".

Si solo tienes problemas con Up, puedes volver a vincularlo sin -r:

bind-key Up select-pane -U

Respuesta2

También puedes desactivar la repetición para combinaciones de teclas específicas, si así lo deseas. Por ejemplo, los enlaces predeterminados para cambiar entre paneles se reducen a:

bind-key -r Up    select-pane -U
bind-key -r Down  select-pane -D
bind-key -r Left  select-pane -L
bind-key -r Right select-pane -R

Podrías recrearlos sin la -rbandera, como

bind-key    Up    select-pane -U
bind-key    Down  select-pane -D
bind-key    Left  select-pane -L
bind-key    Right select-pane -R

Personalmente, prefiero que el cambio de panel no sea repetible. Repetir es bueno si tiene una ventana dividida en muchos paneles pequeños, pero puede provocar colisiones clave (como las que describió) con las aplicaciones que se ejecutan dentro de esos paneles (como historial de shell, vim, etc.), y yo De todos modos, normalmente no tienen más de 2 paneles por ventana. Pero a cada cual lo suyo.

información relacionada