также: как отличить ctrl + j / ctrl + m от ctr + ввод / ввод, которые дают одинаковые коды клавиш (10/13)
Короче говоря -ты не можешь.Терминал почти наверняка выдаст одинаковые байты для каждого.Пожалуйста, прочитайте
http://www.leonerd.org.uk/hacks/fixterms/
Тем не менее, если вы чувствуете себя особенно смелым, вы можете попробовать мой libtermkey
http://www.leonerd.org.uk/code/libtermkey/
, которыйпо крайней мере правильно проанализирует такие вещи, как Ctrl-arrow
.У него (пока) нет привязки к Ruby, но наличие как Perl, так и Python позволяет предположить, что написать его довольно просто.
Наконец, если вы чувствуете себя еще смелее, вы можете запуститьтерминал, который я написал, pangoterm
, который имеет универсальные способы кодирования любых произвольно модифицированных ключей Unicode, чтобы он мог отличить Ctrl-m от Enter и т. д. ...
https://launchpad.net/pangoterm
Однакокроме них, ответ остается «вы не можете».