我有一台用于工作的 MacBook Pro,刚刚拿到了一个苹果 USB 键盘。
当我在终端中使用外部键盘时,仅当我按下向上箭头键时,我才会收到奇怪的字符。例如,按下向上箭头会输入“~”(波浪号)字符。我尝试更改键盘设置,之后我开始收到垃圾字符“]]&D]]”等(这不是实际的错误 - 这是当您远程使用框且外壳未正确配置箭头键时获得的字符输出)。
但奇怪的是,使用外接键盘执行此操作时,MacBook 的内置键盘没有问题,所有箭头键都可以正常工作。所以这似乎完全与外接键盘有关。
有人知道可能发生了什么事或如何解决吗?
答案1
更详细一点可能会有助于回答这个问题。就目前情况而言,我会尝试逐步排除故障来解决这个问题,以下是我会考虑的一些步骤。
如果您可以使用其他 Apple 或其他供应商的 USB 键盘,请尝试使用它来查看问题是否再次出现。您的特定键盘和/或笔记本电脑 USB 端口可能有问题。
我将使用以下命令检查您的终端仿真类型:
$ printenv TERM
xterm-256color
如果不是“xterm-256color”(OS X 终端中新窗口的默认颜色),那么您可能希望考虑通过终端的首选项设置窗口以使用该颜色。(这假设您使用的是终端,而不是 iTerm 等替代方案。)
如果您正在使用“screen”实用程序或 SSH 会话,您可能希望在没有它们的情况下尝试相同的过程。如果没有它们,问题会重复出现,那么您已经获得了更多信息。如果问题没有重复出现,那么这些实用程序的配置或与 shell 的交互可能存在问题,您可以进一步研究。
您的标签表明 Zsh 可能正在使用中。确定如果您切换到 bash(自 Mac OS X 10.3 Panther 以来,OS X 的默认设置)或其他 shell,是否会出现同样的问题。尝试这样做的好处是 Bash 和 Zsh 不应该共享任何或许多配置文件。因此,任一 shell 的特定自定义配置成为罪魁祸首的可能性将降至最低。
如果另一个 shell 没有同样的问题,则需要确定问题出在 shell 配置还是 shell 本身。如果您通常使用的 shell 已自定义,我会在开始新会话之前备份并消除该自定义。如果新会话有效,则说明您的特定 shell 配置存在问题。
您还可以使用全新的 OS X 用户帐户尝试上述步骤,该帐户将从您的语言的本地化用户模板中继承默认设置。可以通过“系统偏好设置”>“用户和组”(在 OS X Mountain Lion 中的名称)创建和删除此用户帐户。此步骤通常会消除已安装的任何其他键盘布局以及可能修改键盘行为的软件。即使为系统上的所有用户安装了此类软件,它也可能不会设置为新用户的登录项。
答案2
假设这些键确实可以工作,问题似乎在于它们生成了无法识别的控制序列,尽管我不知道为什么这会在 Apple 键盘上发生。
我的建议是抓住USB 超速。您应该能够使用它将箭头键映射到正常功能。
答案3
我刚刚注意到我还没有进行最终修复。问题最终似乎出在键盘上。除了终端之外,其他方面都正常。当我将同一类型键盘的另一个单元连接到同一台笔记本电脑时,问题就消失了。因此,出于某种原因,键盘正在生成一个中断,操作系统将其视为向上箭头按下,但 shell 却不理解这一点。我真的不明白这是怎么发生的,但这就是它正在做的事情。感谢大家的精彩建议。
答案4
Apple 键盘有时会将 F6 与向上箭头键一起抛出。您可能不会在其他应用程序或操作系统中注意到这种影响。您可以通过启动在线键盘测试实用程序(例如https://www.keyboardtester.com/)
按向上箭头,看看 F6 是否能成功。如果您遇到了和我一样的问题,那么这里有一些解决方法。
1) Plug out and Plug in the keyboard after some time.
2) Try to use a different USB Port to connect the keyboard.
3) Try cleaning the keyboard (Not recommended as people tried multiple brand new keyboards)
4) Restart the computer (Seriously)
5) If nothing works, Just install a free utility like (Karabiner-Elements) and map F6 to Up Arrow.
有一个更好的解决方法,使用 Karabiner(我一直在用它),但它的配置很乱,而且很耗时。所以如果你不使用 F6 来调整亮度等,这可能会对你有帮助。