Desafortunadamente, tmux solo admite valores de 8 bits individuales en sus enlaces de clave.
Si estaba utilizando una codificación de 8 bits (longitud fija) (por ejemplo, ISO 8859-1, ISO 8859-15, etc.), entonces el enlace debería haber funcionado. Si está utilizando UTF-8, sin embargo, su ù (U + 00F9) está codificado como dos bytes (C3 B9), y tmux lo rechaza como un nombre de clave desconocido (si una clave es más larga que un solo byte (después de eliminar sus prefijos modificadores), se procesa como el nombre de una clave especial, p. ej. F1
, PageUp
, KP0
, etc.).
Sin embargo, si estás desesperado, hay un gran truco que puedes probar:
tmux bind-key -r $(printf '\303') display 'c3 prefix binding hack' \; \
bind-key -r $(printf '\271') split-window -h
Esto abusa de la funcionalidad de enlace de "repetición" al usarla para permanecer en "modo de prefijo" mientras que básicamente ignora el primer byte de la codificación UTF-8 de ù (hex C3 B9, octal 303 271).
El primer byte de ù (octal 303) está vinculado a un comando ficticio, y el segundo byte (octal 271) está vinculado al comando de destino. Esto requiere que no debe haber configurado el tmux repeat-time
opción a cero (para deshabilitar la repetición), y tiene un efecto secundario de dejar tmux en su modo de repetición para repeat-time
milisegundos (por defecto a 500 ms) después de haber escrito Prefijo ù (este efecto secundario generalmente solo se notará si escribe inmediatamente una tecla de flecha (con o sin Controlar o Meta ) después Prefijo ù —Estas claves son los únicos enlaces predeterminados que son “repetibles”).
El ejemplo anterior utiliza el printf
comando de shell para generar los bytes requeridos, pero esto no funcionará en su .tmux.conf
. Si estuvieras corriendo tmux 1.7, podrías escribirlo así (en tu .tmux.conf
):
bind-key -r 0xC3 display 'c3 prefix binding hack'
bind-key -r 0xB9 split-window -h
Sin embargo, esta sintaxis de clave hexadecimal no funciona en tmux 1.6. Por lo tanto, debe organizar los bytes en bruto para que estén directamente en el archivo (su editor de texto puede pelear con usted por esto, y es fácil cometer un error), o usar una shell para ayudarlo:
run-shell "tmux bind-key -r $(printf '\\303') display 'c3 prefix binding hack' \\; bind-key -r $(printf '\\271') split-window -h"
Nota: run-shell
ejecuta su comando de forma asíncrona, por lo que es posible que los enlaces no estén disponibles inmediatamente después de que comience su primera sesión.
run-shell
El comando puede haber sido el que utilicé~/bin/tmux
en lugar de simpletmux
(He editado la respuesta; también desenterré un binario 1.6 y verifiqué que funcionaba con él en una instancia de servidor separada).split-window -h
en & lt; kbd & gt; Prefijo & lt; / kbd & gt ;, & lt; kbd & gt; Control & lt; / kbd & gt; + & lt; kbd & gt; ù & lt; / kbd & gt ;?Desde tmux 2.3 la reconexión dinámica, como lo explica Chris Johnsen, ya no es necesaria y ni siquiera funciona. Para enlazar cualquier carácter UTF-8 solo usa su valor Unicode en
0x
notación.Ejemplo
Digamos que quieres atar Prefijo mi (E pequeña con caron) a la ventana 2.
Primero necesitas averiguar el valor Unicode de
ě
(Tenga en cuenta que esto es diferente de la secuencia de códigos UTF-8).Puede utilizar por ejemplo
python3
para convertir el carácter UTF-8 a su valor Unicode:Ahora cuando sabes un valor de Unicode
ě
es0x011B
simplemente agregue esta línea a su archivo de configuración tmux:fuente