
¿Cómo vinculo las teclas Taby ShiftTaben la pantalla? Mi problema es que no sé qué pasarle al bind
comando de pantalla para designar estas pulsaciones de teclas.
Por cierto, soy consciente dePantalla GNU: moverse entre regionespero la respuesta no está ahí.
Todo lo siguiente falla con el error -X: bind: character, ^x, or (octal) \032 expected
:
screen -X bind "\033[Z" focus up
screen -X bind "^[[Z" focus up
screen -X bind "\t" focus up
screen -X bind \033[Z focus up
screen -X bind ^[[Z focus up
screen -X bind \t focus up
Lo mismo si presiono CtrlA:para ingresar el comando.
Respuesta1
Al contrario de bindkey
donde puede especificar secuencias de caracteres, con bind
, la única forma es utilizar bind -k CAP
CAP cuando es una termcap
capacidad clave.
Por ejemplo,
bind -k ku focus up
trabaja para vincular la secuencia de caracteres enviados Upa focus up
. Para backtab, eso debería ser:
bind -k kB focus up
Desafortunadamente, por alguna razón, no parece funcionar. No estoy seguro de por qué. Mi primera interpretación fue errónea. Parece que tiene algo que ver con no manejar correctamente ncurses
el equivalente de termcap :kcbt
$ infocmp -1 | grep Z
cbt=\E[Z,
kcbt=\E[Z,
$ infocmp -1C | grep Z
:bt=\E[Z:\
(kcbt no se traduce a kB).
Si agrego a mi ~/.screenrc
:
termcapinfo * kr=\E[Z
bind -k kr focus up
Es decir, si digo screen
que sea cual sea elanfitriónterminal ( *
), F63( kr
) envía \E[Z
y se vincula F63, focus up
entonces eso funciona. Sin embargo, tenga en cuenta que al presionar Shift+Tabahora se envíadentro de la pantalla \EOC
, que es la secuencia de caracteres que el emulador de terminal quepantallaLos implementos (a diferencia del terminal host) envían F63.
Respuesta2
bindkey -k kB stuff ^[OZ
bind -k kB focus up
En mi caso el problema es que la cadena insertada cuando presiono Ctrl+ A- Shift+ Tabestá ^[[Z
después de Ctrl+ Alo que se traduce en
^[
ingresar al modo de copia/desplazamiento hacia atrás[
abortar- y luego mostrar
Z
es decir, la secuencia de caracteres de escape de estilo estándar VT100 está en conflicto con la secuencia de caracteres del modo copia/desplazamiento hacia atrás. Así que agregué una combinación de teclas para el nombre del termcap de la pestaña trasera kB
para cambiar la cadena insertada en el búfer de entrada cuando se presiona Shift+ para .Tab^[OB
Consulte la sección "TRADUCCIÓN DE ENTRADA" en la página de manual de la pantalla.