Я подключаюсь к настольному компьютеру под управлением 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 script, который я написал, который принимает STDIN в binmode и выводит его как дамп шестнадцатеричного /ascii ):
% hexdump
[press F1 and then hit ^D to terminate input]
00000000: 1b4f50 .OP
Если все работает правильно, я не думаю, что bash должен получить escape-последовательность, потому что экран должен поймать его и превратить в команду.
Как заставить функциональные клавиши работать?