Как привязать действие к ctrl-f1 на экране?

Я знаю, что могу сделать:

bindkey "...." action

где.... это то, что я получаю, набрав Ctrl-V, а затем Ctrl-F1. но выглядит плохо, содержит плохие символы (^[) и вообще не круто.

при привязке к f1 я могу сделать:

bindkey -k k1 action

но я не могу найти имя возможности termcap для ctrl-functionkey.

Где я могу найти его?

Когда я нажимаю ctrl-v ctrl-f1 на терминале, я получаю:

^[O5P

это 4 байта, а не 5:

=$ echo "^[O5P" | hexdump -C
00000000  1b 4f 35 50 0a                                    |.O5P.|

1 ответ

К несчастью, screen очевидно, не понимает достаточно функциональных клавиш, чтобы иметь возможность обрабатывать Ctrl-F1. По крайней мере, я не смог получить bindkey -k FF stuff "pressed Ctrl-F1" работать даже после попытки определить FF или KF25 с помощью termcap или же terminfo команды в ~/.screenrc, Я также попробовал "kf25" в bindkey команда. В любом случае я получаю сообщение "bindkey: unknown key".

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

В противном случае вы можете продолжать использовать некрасивый, некрутой метод. Для наблюдателей неуместно использовать жестко заданные escape-последовательности вместо имен возможностей, потому что они не будут переносимы на другие типы терминалов.

Названия возможностей:

                    termcap terminfo xterm

F1 k1 kf1 ^ [OP

Shift-F1 F3 kf13 ^ [O2P

Ctrl-F1 FF kf25 ^ [O5P

Ctrl-Shift-F1 FR kf37 ^ [O6P

Выход из tput:

$ tput -Txterm kf25 | hd
00000000  1b 4f 35 50                                       |.O5P|
Другие вопросы по тегам