Gửi các phím chức năng (F1-F12) qua SSH


13

Tôi có một máy Fedora mà tôi có thể SSH. Một trong những chương trình tôi muốn sử dụng đôi khi sử dụng các phím chức năng. Vấn đề là tôi SSH'ing từ một máy tính bảng Android (ASUS Transformer Infinity) với một bàn phím vật lý, nhưng không F1- F12phím. Vì vậy, cho đến khi ứng dụng đầu cuối mà tôi đang sử dụng (VX ConnectBot) quyết định thêm chúng dưới dạng một tính năng, tôi đang tìm cách gửi chúng bằng phần còn lại của bàn phím.

Tôi có thể sử dụng tất cả các ký tự ASCII in được, Esc, Ctrl, Shift, Enter, và Tab.


Tôi nghĩ bạn nên hỏi về Android.SE.
derobert

Câu trả lời:


25

Thiết bị đầu cuối chỉ hiểu nhân vật, không phải chìa khóa. Vì vậy, các phím chức năng al được mã hóa thành chuỗi các ký tự, sử dụng các ký tự điều khiển. Ngoài một vài cái phổ biến có ký tự điều khiển liên quan ( Tabis Ctrl+I, Enteris Ctrl+M, Escis Ctrl+[), các phím chức năng gửi các chuỗi thoát, bắt đầu bằng Ctrl+[ [hoặc Ctrl+[ O. Bạn có thể sử dụng tputlệnh để xem các ứng dụng chuỗi thoát mong đợi cho mỗi phím chức năng trên thiết bị đầu cuối của bạn. Các trình tự này được lưu trữ trong terminfocơ sở dữ liệu. Ví dụ: đoạn mã dưới đây hiển thị các chuỗi thoát tương ứng với từng phím chức năng.

$ 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~

Một cách khác để xem chuỗi thoát cho phím chức năng là nhấn Ctrl+ Vtrong ứng dụng đầu cuối không bật lại phím Ctrl+ V(chẳng hạn như vỏ). Ctrl+ Vchèn ký tự tiếp theo (sẽ là ký tự thoát) theo nghĩa đen và bạn sẽ có thể thấy phần còn lại của chuỗi, bao gồm các ký tự thông thường.

Vì các chuỗi có thể khó nhập, hãy điều tra thay đổi các ràng buộc chính trong ứng dụng của bạn hoặc sử dụng trình giả lập thiết bị đầu cuối khác. Ngoài ra, lưu ý rằng bạn có thể có giới hạn thời gian: một số ứng dụng chỉ nhận ra các chuỗi thoát nếu chúng đến đủ nhanh, để chúng có thể chỉ có ý nghĩa đối với Esckhóa.


Làm cách nào để thêm các phím chức năng đã dịch chuyển vào danh sách mà lệnh của bạn cung cấp?
drevicko

1
@drevicko Trên xterm, Shift + F1 là kf13, Shift + F2 là kf14, v.v ... Sau đó Ctrl + F1 là kf25, Ctrl + Shift + F1 là kf37, Alt + F1 là kf49. Tôi không biết nếu điều này hoạt động trên các thiết bị đầu cuối khác cũng như những gì bạn nhận được nếu bạn có một khóa F13 thực tế.
Gilles 'SO- đừng trở nên xấu xa'

3

Trình giả lập thiết bị đầu cuối Android của Jack Palevich sử dụng tổ hợp phím với các phím âm lượng để gửi nhiều loại phím khác nhau, bao gồm cả các phím chức năng. Ngoài ra còn có Bàn phím của hacker có sẵn mọi phím mà bàn phím thực sẽ có.


Cảm ơn, Bàn phím Hacker sẽ bao gồm những gì tôi cần bây giờ.
Sizik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.