Me gustaría utilizar el teclado numérico para seleccionar Windows en tmux. ¿Alguien hace esto?
Respuestas
¿Demasiados anuncios?Si su emulador de terminal emite ciertos códigos para las teclas del teclado, entonces estos comandos (por ejemplo, en su .tmux.conf
) se vinculará Keypad 0 - Keypad 9 para que funcione exactamente igual que prefix + 0 - prefix + 9 :
bind-key -n KP0 select-window -t :0
bind-key -n KP1 select-window -t :1
bind-key -n KP2 select-window -t :2
bind-key -n KP3 select-window -t :3
bind-key -n KP4 select-window -t :4
bind-key -n KP5 select-window -t :5
bind-key -n KP6 select-window -t :6
bind-key -n KP7 select-window -t :7
bind-key -n KP8 select-window -t :8
bind-key -n KP9 select-window -t :9
El -n
significa que no es necesario utilizar el prefijo de la clave; los nombres de las claves ( KPx
) no parecen estar en la documentación, pero se pueden encontrar en el código fuente en el archivo key-string.c
. Los valores que su terminal debe enviar parecen estar codificados: véase tty-keys.c
; TTYKEY_RAW significa que no se utiliza terminfo, y no hay otras entradas para las teclas KEYC_KP* sin TTYKEY_RAW (donde se podría consultar terminfo; el problema aquí es que el soporte de terminfo para el teclado numérico parece estar incompleto).
Puede comprobar si su emulador de terminal envía códigos especiales para las teclas ejecutando esto fuera tmux :
tput smkx;cat -v;tput rmkx
(utilizar Control + c para acabar con el cat
ejemplo)
Probablemente deberías ver algo así para KP0-KP9:
^[Op^[Oq^[Or^[Os^[Ot^[Ou^[Ov^[Ow^[Ox^[Oy
Esto me funciona por defecto en iTerm2 (Build 1.0.0.20120724), pero en Terminal (Versión 2.3 (309); desde OS X 10.8.2) tuve que habilitar Permitir el modo de teclado de la aplicación VT100 para un perfil ( Terminal menú > Preferencias ; Ajustes ficha > seleccione un perfil > Avanzado ficha; marque Permitir el modo de teclado de la aplicación VT100 en Emulación ).
Si tienes activado el bloqueo numérico, el teclado envía la misma entrada al terminal que las teclas numéricas por encima de las letras qwerty, por lo que no hay forma de especificar el teclado específicamente. Puedes intentar mapear las entradas no bloqueadas del teclado, pero creo que eso es específico de tu teclado y terminal.
Para asignar una clave sin requerir Prefix Utilizar bind-key -n key command
. El -n
significa "modo normal". Así que los comandos que probablemente quieras añadir son:
bind-key -n 0 select-window -t 0
bind-key -n 1 select-window -t 1
bind-key -n 2 select-window -t 2
bind-key -n 3 select-window -t 3
bind-key -n 4 select-window -t 4
bind-key -n 5 select-window -t 5
bind-key -n 6 select-window -t 6
bind-key -n 7 select-window -t 7
bind-key -n 8 select-window -t 8
bind-key -n 9 select-window -t 9