Надсилання функціональних клавіш (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.