SSH üzerinden işlev tuşları (F1-F12) gönderme


14

SSH yapabileceğim bir Fedora makinem var. Kullanmak istediğim programlardan biri fonksiyon tuşlarını kullanıyor. Sorun fiziksel bir klavye ile bir Android tablet (ASUS Transformer Sonsuz) den SSH'ing, ancak hiçbir olmam F1- F12tuşları. Bu yüzden, kullandığım terminal uygulaması (VX ConnectBot) bunları bir özellik olarak eklemeye karar verene kadar, klavyenin geri kalanını kullanarak göndermenin bir yolunu arıyorum.

Bütün yazdırılabilir ASCII karakterleri kullanabilirsiniz, Esc, Ctrl, Shift, Enter, ve Tab.


Android'de sormaktan daha iyi olacağını düşünüyorum.
derobert

Yanıtlar:


26

Terminaller tuşları değil, sadece karakterleri anlar. Böylece tüm fonksiyon tuşları kontrol karakterleri kullanılarak karakter dizileri olarak kodlanır. Apart, ilişkili denetim karaktere sahiptir birkaç ortak olanlardan (dan Tabedilir Ctrl+I, Enterolup Ctrl+M, Escolduğu Ctrl+[), fonksiyon tuşları çıkış sıralarını ile başlayan göndermek Ctrl+[ [veya Ctrl+[ O. tputKomutu, terminalinizdeki her işlev tuşu için kaçış sırası uygulamalarının beklediğini görmek için kullanabilirsiniz . Bu diziler terminfoveritabanında saklanır . Örneğin, aşağıdaki kabuk snippet'i, her bir işlev tuşuna karşılık gelen kaçış dizilerini gösterir.

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

Bir fonksiyon tuşunun çıkış sırası görmek için diğer bir yolu olduğunu Ctrl+ Vrebind olmayan bir terminal uygulamada Ctrl+ V(örneğin kabuk gibi) anahtarı. Ctrl+ bir Vsonraki karakteri (kaçış karakteri olacak) tam anlamıyla ekler ve sıradan karakterlerden oluşan dizinin geri kalanını görebilirsiniz.

Diziler yazmak zor olabileceğinden, uygulamanızdaki anahtar bağları değiştirmeyi veya başka bir terminal öykünücüsü kullanmayı araştırın. Ayrıca, bir zaman sınırınız olabileceğini unutmayın: bazı uygulamalar kaçış dizilerini yalnızca yeterince hızlı girdiklerinde tanır, böylece Escyalnızca anahtara bir anlam verebilirler .


Değiştirdiğiniz işlev tuşlarını komutunuzun sağladığı listeye nasıl eklerim?
drevicko

1
@drevicko xterm'de, Shift + F1 kf13, Shift + F2 kf14vb. sonra Ctrl + F1 kf25, Ctrl + Shift + F1 kf37, Alt + F1 kf49. Bunun diğer terminallerde çalışıp çalışmadığını veya gerçek bir F13 anahtarınız varsa ne elde ettiğinizi bilmiyorum.
Gilles 'SO- kötü olmayı bırak'

3

Jack Palevich'in Android Terminal Emulator'u, işlev tuşları da dahil olmak üzere çeşitli tuşları göndermek için ses seviyesi tuşlarıyla tuş kombinasyonlarını kullanır. Gerçek bir klavyenin sahip olacağı her anahtara sahip Hacker Klavyesi de var.


Teşekkürler, Hacker Klavye şimdilik ihtiyacım olan şeyleri kapsamalıdır.
Sizik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.