Как мне получить клавиши F1-F12 для переключения экранов на экране GNU в cygwin при подключении через SSH?

Я подключаюсь к рабочему столу, на котором запущен cygwin, через SSH из терминального приложения в Mac OS X. Я уже запустил экран на стороне cygwin и могу подключиться к нему через сеанс SSH. Кроме того, в файле .screenrc у меня есть следующее:

bindkey -k k1 select 1  #  F1 = screen 1
bindkey -k k2 select 2  #  F2 = screen 2
bindkey -k k3 select 3  #  F3 = screen 3
bindkey -k k4 select 4  #  F4 = screen 4
bindkey -k k5 select 5  #  F5 = screen 5
bindkey -k k6 select 6  #  F6 = screen 6
bindkey -k k7 select 7  #  F7 = screen 7
bindkey -k k8 select 8  #  F8 = screen 8
bindkey -k k9 select 9  #  F9 = screen 9
bindkey -k F1 prev      # F11 = prev
bindkey -k F2 next      # F12 = next

Однако, когда я запускаю несколько окон на экране и пытаюсь переключаться между ними с помощью функциональных клавиш, все, что я получаю, - это звуковой сигнал.

Я пробовал различные настройки для $ TERM (например, ansi, cygwin, xterm-color, vt100), и они, похоже, ни на что не влияют.

Я проверил, что приложение терминала на самом деле отправляет escape-последовательность для функциональной клавиши, которую я ожидаю, и что моя оболочка bash (работающая внутри экрана) является получая это. Например, для F1 он отправляет следующее (hexdump - это сценарий perl, который я написал, который принимает STDIN в binmode и выводит его как шестнадцатеричный / ascii-дамп):

% hexdump
[press F1 and then hit ^D to terminate input]
00000000:  1b4f50                               .OP

Если все работает правильно, я не думаю, что bash должен получить escape-последовательность, потому что screen должен был ее уловить и превратить в команду.

Как заставить работать функциональные клавиши?

14
задан gcb 10 November 2014 в 18:11
поделиться