Назад | Перейти на главную страницу

Как привязать действие к 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.|

К сожалению, 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|