Как получить ключи 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 

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

  • Cygwin fstab - что я делаю неправильно?
  • Как отформатировать Ext2 в Windows XP?
  • Откройте текстовый файл в VIM cygwin
  • SSH для Cygwin медленно реагирует
  • Как вызывать gvim Windows в среде Windows из Cygwin?
  • Значок Cygwin разбит на панели задач
  • Я пробовал различные настройки для $ 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-последовательность, потому что экран должен был поймать его и превратить в команду.

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

  • Как редактировать текстовые файлы в командной строке Windows?
  • Как заставить клавиши HOME или END работать в mc, работающем на OS X (ssh)
  • ISP блокирует использование ssh?
  • Пересылка звука, подобного X в SSH
  • Byobu vs. GNU Screen vs. tmux - полезность и переносимость навыков
  • Автозапуск нескольких сеансов экрана на сервере Ubuntu
  • 2 Solutions collect form web for “Как получить ключи F1-F12 для переключения экранов на экране gnu в cygwin при подключении через SSH?”

    С большим количеством экспериментов я смог заставить его работать, добавив следующие строки в мой .screenrc:

     terminfo * k1=\EOP terminfo * k2=\EOQ terminfo * k3=\EOR terminfo * k4=\EOS terminfo * k5=\E[15~ terminfo * k6=\E[17~ terminfo * k7=\E[18~ terminfo * k8=\E[19~ terminfo * k9=\E[20~ terminfo * F1=\E[23~ terminfo * F2=\E[24~ 

    Вероятно, мой ответ будет дополнять предыдущий. Вы можете найти измененную базу данных terminfo, которая позволит вам использовать клавиши Fx, а также комбинации Alt + Fx, Ctrl + Fx, Shift + Fx, Alt + Shift + Fx. Инструкции по его использованию здесь . Конечно, приложение терминала должно их поддерживать. Эти коды клавиш из XFree 4 варианта консоли (поддерживается в консоли).

    Давайте будем гением компьютера.