Mengirim tombol fungsi (F1-F12) melalui SSH

13

Saya memiliki mesin Fedora yang dapat saya gunakan untuk SSH. Salah satu program yang ingin saya gunakan sesekali menggunakan tombol fungsi. Masalahnya adalah bahwa saya ssh'ing dari tablet Android (ASUS Transformer Infinity) dengan keyboard fisik, tetapi tidak ada F1- F12kunci. Jadi, hingga aplikasi terminal yang saya gunakan (VX ConnectBot) memutuskan untuk menambahkannya sebagai fitur, saya sedang mencari cara untuk mengirim mereka menggunakan sisa keyboard.

Saya dapat menggunakan semua karakter ASCII yang dapat dicetak, Esc, Ctrl, Shift, Enter, dan Tab.

Sizik
sumber
Saya pikir Anda akan lebih baik bertanya di Android.SE.
derobert

Jawaban:

25

Terminal hanya memahami karakter, bukan kunci. Jadi tombol fungsi al dikodekan sebagai urutan karakter, menggunakan karakter kontrol. Terlepas dari beberapa yang umum yang memiliki karakter kontrol terkait ( Tabis Ctrl+I, Enteris Ctrl+M, Escis Ctrl+[), tombol fungsi mengirim urutan escape, dimulai dengan Ctrl+[ [atau Ctrl+[ O. Anda dapat menggunakan tputperintah untuk melihat apa yang diharapkan aplikasi urutan sekuensi untuk setiap tombol fungsi pada terminal Anda. Urutan ini disimpan dalam terminfobasis data. Misalnya, cuplikan shell di bawah ini menunjukkan urutan pelarian yang sesuai dengan setiap tombol fungsi.

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

Cara lain untuk melihat urutan keluar untuk tombol fungsi adalah dengan menekan Ctrl+ Vpada aplikasi terminal yang tidak mengubah kunci Ctrl+ V(seperti shell). Ctrl+V menyisipkan karakter berikutnya (yang akan menjadi karakter pelarian) secara harfiah, dan Anda akan dapat melihat sisa urutannya, yang terdiri dari karakter biasa.

Karena urutannya mungkin canggung untuk diketik, lakukan investigasi dengan mengubah ikatan utama dalam aplikasi Anda atau menggunakan emulator terminal lain. Juga, perhatikan bahwa Anda mungkin memiliki batas waktu: beberapa aplikasi hanya mengenali urutan pelarian jika mereka datang cukup cepat, sehingga mereka dapat memberi makna pada Esckunci saja.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Bagaimana cara menambahkan tombol fungsi yang digeser ke daftar yang disediakan oleh perintah Anda?
drevicko
1
@drevicko Pada xterm, Shift + F1 adalah kf13, Shift + F2 kf14, dll. Kemudian Ctrl + F1 kf25, Ctrl + Shift + F1 kf37, Alt + F1 kf49. Saya tidak tahu apakah ini berfungsi pada terminal lain atau apa yang Anda dapatkan jika Anda memiliki kunci F13 yang sebenarnya.
Gilles 'SANGAT berhenti menjadi jahat'
3

Android Terminal Emulator oleh Jack Palevich menggunakan kombinasi tombol dengan tombol volume untuk mengirim berbagai tombol, termasuk tombol fungsi. Ada juga Keyboard Peretas yang memiliki setiap tombol yang tersedia yang dimiliki oleh keyboard asli.

Drake Clarris
sumber
Terima kasih, Keyboard Peretas harus mencakup apa yang saya butuhkan untuk saat ini.
Sizik