Надсилання функціональних клавіш (F1-F12) через SSH


14

У мене є машина Fedora, на яку я можу SSH. Одна з програм, яку я хотів би використовувати час від часу, використовує функціональні клавіші. Проблема в тому, що я SSH'ing з планшета Android (ASUS Transformer Infinity) з фізичною клавіатурою, але ні F1- F12клавішами. Отже, поки термінальний додаток, який я використовую (VX ConnectBot) не вирішить додати їх як функцію, я шукаю спосіб надіслати їх за допомогою решти клавіатури.

Я можу використовувати всі друковані символи ASCII, Esc, Ctrl, Shift, Enter, і Tab.


Я думаю, вам буде краще запитати на Android.SE.
— дероберт

Відповіді:


26

Термінали розуміють лише символи, а не клавіші. Отже, всі функціональні клавіші кодуються як послідовності символів, використовуючи контрольні символи. Окрім кількох поширених, які мають асоційований керуючий характер ( Tabє Ctrl+I, Enterє Ctrl+M, Escє Ctrl+[), функціональні клавіші надсилають послідовності втечі, починаючи з Ctrl+[ [або Ctrl+[ O. Ви можете скористатися tputкомандою, щоб побачити, які програми очікування послідовності очікування очікують для кожної функціональної клавіші вашого терміналу. Ці послідовності зберігаються в terminfoбазі даних. Наприклад, фрагмент оболонки нижче показує послідовності відходу, відповідні кожній функціональній клавіші.

$ for x in {1..12}; do echo -n "F$x "; tput kf$x | cat -A; echo; done
F1 ^[OP
F2 ^[OQ
F3 ^[OR
F4 ^[OS
F5 ^[[15~
F6 ^[[17~
F7 ^[[18~
F8 ^[[19~
F9 ^[[20~
F10 ^[[21~
F11 ^[[23~
F12 ^[[24~

Інший спосіб побачити послідовність виходу функціональної клавіші - натиснути Ctrl+ Vу термінальній програмі, яка не відновлює клавішу Ctrl+ V(наприклад, оболонку). Ctrl+ Vвставляє наступний символ (який буде символом втечі) буквально, і ви зможете побачити решту послідовності, яка складається із звичайних символів.

Оскільки послідовності можуть бути незручними для введення, слід вивчити зміну ключових прив’язок у вашій програмі або використовувати інший емулятор терміналу. Також зауважте, що у вас може бути обмеження часу: деякі програми розпізнають послідовності втечі лише тоді, коли вони надходять досить швидко, щоб вони могли дати значення лише Escклавіші.


Як додати зміщені функціональні клавіші до списку, який надає ваша команда?
— drevicko

1
@drevicko На xterm Shift + F1 є kf13, Shift + F2 є kf14і т.д. Потім Ctrl + F1 є kf25, Ctrl + Shift + F1 є kf37, Alt + F1 є kf49. Я не знаю, чи працює це на інших терміналах, ні що ви отримаєте, якщо у вас є фактичний ключ F13.
— перестань бути злим"

3

Емулятор терміналів Android від Джека Палевича використовує комбінації клавіш із клавішами гучності для надсилання різноманітних клавіш, включаючи функціональні клавіші. Також є клавіатура Хекера, яка має кожну клавішу, яку матиме реальна клавіатура.


Дякую, клавіатура хакера повинна охопити те, що мені зараз потрібно.
— Сізік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.