Я знаю, что могу:
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|