Ao contrário de bindkey
, em que você pode especificar sequências de caracteres, com bind
, a única maneira é usar bind -k CAP
, em que CAP é um recurso de chave termcap
.
Por exemplo,
bind -k ku focus up
trabalha para vincular a seqüência de caracteres enviada ao Up para focus up
. Para o backtab, isso deve ser:
bind -k kB focus up
Infelizmente, por algum motivo, não funciona. Não tenho certeza porque. Minha primeira interpretação estava errada. Parece que tem algo a ver com ncurses
não manipular o equivalente a termcap kcbt
corretamente:
$ infocmp -1 | grep Z
cbt=\E[Z,
kcbt=\E[Z,
$ infocmp -1C | grep Z
:bt=\E[Z:\
(kcbt não está traduzido para kB).
Se eu adicionar ao meu ~/.screenrc
:
termcapinfo * kr=\E[Z
bind -k kr focus up
Isto é, se eu disser screen
que qualquer que seja o host termincal ( *
), F63 ( kr
) envia \E[Z
e liga F63 para focus up
, então isso funciona. Entretanto, note que pressionar Shift + Tab agora envia na tela \EOC
, que é a sequência de caracteres que o emulador de terminal que tela implementa (como oposta ao terminal host) envia sobre F63 .