Siz*_*zik 17 ssh terminal android
我有一台可以通过 SSH 连接的 Fedora 机器。我想使用的程序之一偶尔会使用功能键。问题是我从带有物理键盘的 Android 平板电脑(ASUS Transformer Infinity)进行 SSH 连接,但没有F1-F12键。因此,在我使用的终端应用程序 (VX ConnectBot) 决定将它们添加为一项功能之前,我正在寻找一种使用键盘其余部分发送它们的方法。
我可以使用所有可打印的 ASCII 字符Esc、Ctrl、Shift、Enter、 和Tab。
Gil*_*il' 27
终端只能理解字符,不能理解键。因此,所有功能键都使用控制字符编码为字符序列。除了一些具有关联控制字符(Tabis Ctrl+I、Enteris Ctrl+M、Escis Ctrl+[)的常见键之外,功能键还发送以Ctrl+[ [或开头的转义序列Ctrl+[ O。您可以使用该tput命令查看转义序列应用程序对终端上每个功能键的期望。这些序列存储在terminfo数据库中。例如,下面的 shell 片段显示了与每个功能键对应的转义序列。
$ 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~
Run Code Online (Sandbox Code Playgroud)
查看功能键的转义序列的另一种方法是在不重新绑定+键的终端应用程序(例如 shell)中按Ctrl+ 。+按字面意思插入下一个字符(将是转义字符),您将能够看到序列的其余部分,它由普通字符组成。VCtrlVCtrlV
由于序列可能难以输入,因此请研究更改应用程序中的键绑定或使用其他终端仿真器。另请注意,您可能有时间限制:某些应用程序仅在转义序列输入足够快的情况下才能识别它们,以便它们可以Esc单独为键赋予含义。