Slbox Asked: 2022-10-29 17:03:59 +0800 CST2022-10-29 17:03:59 +0800 CST 2022-10-29 17:03:59 +0800 CST 当我尝试使用 Alt+Delete 删除文本时,终端中的输出到底是什么? 772 Alt+Backspace 在终端中工作,这经常导致我错误地尝试 Alt+Delete,然后添加一个~. 那里到底发生了什么? terminal 1 个回答 Voted Best Answer White Owl 2022-10-29T18:35:15+08:002022-10-29T18:35:15+08:00 它是无法识别的扫描码的残余。 键盘上的按钮会发送一个或多个字节来指示按下了哪个按钮。这些字节通过键盘驱动程序进行一些转换,最终被应用程序(在本例中为终端)捕获。应用程序正在尝试识别哪个热键是该字节集并采取相应的行动。如果无法识别,应用程序通常会忽略此类字符串,或者您可能会出现“奇怪的行为”。 要了解您可以为哪个按钮或按钮组合获取哪些字节cat /dev/tty。它将为每个按钮打印一组符号 - 因为驱动程序将它们报告给应用程序。 在您了解为特定按钮组合发送的符号组合后,您可以转到应用程序的配置文件并添加它,或者如果应用程序期望热键的字符集不同,则修复它。 由于历史上具有不同键盘的物理终端种类繁多,对于逻辑上相同的键,可能存在许多不同的扫描码。于是数据库terminfo应运而生。它知道很多实际的终端(物理终端),并且知道为哪个组合键发送哪个字符串。如果你想教你的终端一个新的热键,你需要编写自己的 terminfo 条目,并选择TERM环境变量。 您只看到一个符号这一事实~意味着您当前的终端与您的当前 TERM 以某种方式识别并使用键盘驱动程序发送到终端的部分字符串并执行某些操作,并打印序列的剩余部分。
它是无法识别的扫描码的残余。
键盘上的按钮会发送一个或多个字节来指示按下了哪个按钮。这些字节通过键盘驱动程序进行一些转换,最终被应用程序(在本例中为终端)捕获。应用程序正在尝试识别哪个热键是该字节集并采取相应的行动。如果无法识别,应用程序通常会忽略此类字符串,或者您可能会出现“奇怪的行为”。
要了解您可以为哪个按钮或按钮组合获取哪些字节
cat /dev/tty
。它将为每个按钮打印一组符号 - 因为驱动程序将它们报告给应用程序。在您了解为特定按钮组合发送的符号组合后,您可以转到应用程序的配置文件并添加它,或者如果应用程序期望热键的字符集不同,则修复它。
由于历史上具有不同键盘的物理终端种类繁多,对于逻辑上相同的键,可能存在许多不同的扫描码。于是数据库
terminfo
应运而生。它知道很多实际的终端(物理终端),并且知道为哪个组合键发送哪个字符串。如果你想教你的终端一个新的热键,你需要编写自己的 terminfo 条目,并选择TERM
环境变量。您只看到一个符号这一事实
~
意味着您当前的终端与您的当前 TERM 以某种方式识别并使用键盘驱动程序发送到终端的部分字符串并执行某些操作,并打印序列的剩余部分。