我在非 GUI 控制台上输入的任何字符都会被添加到前面 ^[

我在非 GUI 控制台上输入的任何字符都会被添加到前面 ^[

我只是觉得这种行为很有趣(我可以通过重新启动来修复它)。是什么原因导致的?有什么方法可以在会话中将其关闭吗?或者我可以自由地得出结论仅有的一个错误?

这可能会有所帮助:按下 Fn 键就像按下 alt 键(在控制台之间切换)。使用 alt 键没有切换固定效果。

重新启动agetty 没有帮助。所有控制台都以这种方式运行,并且它们都没有登录,因此我无法在交互式 shell 中确认此行为,显然也无法将 shell 用于某些建议的解决方案。

答案1

您可能有一个实体键盘,或者它可能只是其中之一。首先,什么是正常工作的:您正在使用的键盘布局具有类似于元发送转义的内容并映射了元键。也可能是 alt 发送逃逸,但我不这么认为。什么是元?这是第四种换档状态(前三种是换档控制和alt)。元键最常见的选择是 alt 键或 windows 键。现在出了什么问题?您丢失了按键释放事件。键盘的工作方式是,对于输入的每个字母,您都会收到两个事件:按键和按键释放(当您按住某些键但不按住 Shift 键时,还会出现按键重复)。需要转变状态的大写字母有四个事件,例如大写字母 A 是 Shift 按下、a按下、a释放和 Shift 释放。类似地,对于控制 Alt 和 Meta Shift 状态,在按键时进入并在相应的释放时离开。因此,根据您所看到的症状,您可能丢失了一个关键的元版本。这可能是电噪声、键盘故障(如果频繁发生,则可能只是粘滞键)或软件错误。如果是软件错误,则通常是由关键事件的多个解析器之间的上下文切换以及上下文切换期间移位使用不一致引起的。例如,如果您的窗口管理器使用 alt 选项卡来切换窗口,并且您使用它来切换到或远离 vnc,并使用鼠标转到其他方式,则您的 alt 切换状态可能会在远程计算机上变得混乱,或者在这种情况下如果您使用meta-alt-f7切换到X并使用ctl-alt-f1切换回来,文本控制台会看到一个被忽略的额外控制版本,但看不到元版本。或者你的元键被卡住了。

相关内容