Enlace de un comando en tmux sin usar la tecla de prefijo

46

¿Es posible vincular un comando tmux a una combinación de teclas y usarlo directamente sin presionar primero el prefijo?

Me resulta C-b + ndemasiado engorroso cambiar los paneles, por lo que me preguntaba si podría vincularme, C-1por ejemplo, para cambiar al panel # 1.

¿O tal vez puede haber una manera de hacer que el acceso directo en el emulador de terminal se envíe C-b + 1cuando presiono C-1?

¡Gracias!

Ivan
fuente
1
Yo solo uso set -g prefix C-a.
Grawity
Yo también, acabo de poner Cb en mi pregunta porque ese es el valor predeterminado.
Ivan

Respuestas:

46

para su ejemplo, use:

bind-key -n C-1 select-pane -t 1

El argumento -n de clave de enlace significa que no tiene prefijo.

Autoplectic
fuente
1
¡Gracias! Eso casi lo hace, excepto que no reconoce números, dice unknown key: C-1. Si uso una letra, funciona. ¿Sabes cómo puedo especificar una clave numérica?
Ivan
66
@Ivan: Los códigos habituales para las pulsaciones de teclas de control provienen de ASCII. ASCII no define códigos para C-1..C-9. Los caracteres de control ASCII estándar son C- @, Ca..Cz, C- [, C- \, C-], C- ^, C-_ y C- ?. La mayoría de los terminales simplemente no admiten códigos distintos para la mayoría de las pulsaciones de teclas modificadas (aunque muchas admiten algunos modificadores para las teclas de flecha y las teclas de funciones). Probablemente sea mejor usarlo F1en lugar de C-1(también tenga en cuenta que los números de panel comienzan en 0, no 1: enlace F1 para seleccionar el panel 0, F2 a 1, etc.).
Chris Johnsen
2

Tengo una objeción con la respuesta aceptada aquí.

De acuerdo con tmux(1), -n is an alias for -T root. Por lo tanto, incluir en -nrealidad no significa que no haya "ningún prefijo", sino que significa que el comando estará vinculado a la tabla raíz, lo que "no se recomienda".

tmux(1):

La tabla raíz se usa para las teclas presionadas sin la tecla de prefijo: vincular 'c' a una nueva ventana en la tabla raíz (no recomendado) significa que 'c' creará una nueva ventana

Lo que parece estar diciendo es que:

bind -n c new-window

Creará una nueva ventana cuando cse presione, y de hecho, lo hace.

El humor seco en la frase del autor "no recomendado" es el hecho de que "c", por supuesto, se presionará muchas veces en la sesión media de tmux, dado que "c" es la tercera letra más frecuente en inglés .

Para otro ejemplo, aquí hay un cambio rápido de ventana tmux (usando las teclas PageUp / PageDown):

unbind NPage
unbind PPage
bind -n PPage previous-window
bind -n NPage next-window
g33kz0r
fuente