你把一把意大利语键盘接到在美国买的 MacBook 上,结果一半的符号都打错了。把 Mac 切换成意大利语,内置键盘又不对了。这是因为 macOS 对所有键盘同时只使用一个输入法(Apple 对键盘布局和输入方式的统称)。本指南会帮你装好两种布局,修正 macOS 能按键盘单独修正的按键,并让布局跟随你正在打字的键盘。

为什么一种布局会作用于所有键盘

当前输入法是一项全系统的设置。你在输入法菜单中选择的输入法,对内置键盘以及所有 USB 或蓝牙键盘一视同仁。macOS 可以用快捷键切换输入法,也可以为每个文稿记住一个输入法,但没有任何选项能把输入法和某个键盘绑定。

不过有两样东西确实是按键盘分别记住的:键盘类型(ANSI、ISO 或 JIS,决定 Shift 和 Return 附近几个键打出什么)和修饰键。第 2 步和第 3 步会讲到它们。

第 1 步:为每个键盘添加布局

  1. 打开系统设置 › 键盘。
  2. 在文字输入下,点按“输入法”旁边的编辑…。
  3. 点按 +,选择一种语言,再选择与键盘上印刷的按键相符的布局(意大利语、德语、英国、法语等),然后点按添加。
  4. 打开在菜单栏显示输入法菜单,以便查看和更改当前布局。

不确定哪个变体与你的键帽相符?从输入法菜单中选择显示虚拟键盘,和面前的键盘对照一下。

第 2 步:设置键盘类型

连接 macOS 无法识别的键盘时,“键盘设置助理”会打开,让你按几个键来判断键盘类型。如果你关掉了它,或者它判断错了,就会发现1 左边的键和 Z 左边的键互换了,或者打出错误的符号(§ 和 `,< 和 >)。

要重新运行它,请连接键盘,打开系统设置 › 键盘,然后点按更改键盘类型…。键盘类型错误看起来像布局错误,但换哪个输入法都修不好。

第 3 步:在 Windows 键盘上互换 Command 和 Option

在为 Windows 设计的键盘上,空格键旁边的键是 Alt,而 Mac 键盘在这个位置是 ⌘。要只为这个键盘互换它们,请打开系统设置 › 键盘,点按键盘快捷键…,选择修饰键,在顶部的菜单中选择外接键盘,然后把 Option 设为 Command,把 Command 设为 Option。

第 4 步:换键盘时切换布局

两种布局都装好了。剩下的就是每次换键盘时选对布局。

手动切换

按 Control Space 回到上一个输入法;如果在“键盘”设置中把 🌐 键设为更改输入法,也可以按它;或者从输入法菜单中选择。这样可行,但每次都得记着,而且在另一个键盘上打的第一个词通常会出错。

按文稿切换

在第 1 步的输入法设置中,打开自动切换到文稿的输入法后,每个窗口都会记住你上次在其中使用的输入法。如果每个文稿使用各自的语言,这很有用;但在同一个文稿里换键盘时就帮不上忙了。

按键盘自动切换

这正是 Keyameleon 补上的功能。它是一款免费开源的菜单栏应用,支持 macOS 26 或更高版本:

  1. 用 Homebrew 安装:brew install --cask mastro993/tap/keyameleon,或者从最新发行版下载 DMG,把 Keyameleon 拖到“应用程序”文件夹。
  2. 打开它。引导设置会请求“输入监控”权限,它只用这个权限来判断按键来自哪个键盘。
  3. 为每个键盘选择一个输入法:例如内置键盘用“美国”,外接键盘用“意大利语”。

此后,只要你开始在某个键盘上打字,Keyameleon 就会切换到该键盘的输入法,在任何 App 中都是如此。断开连接或重启后,键盘依然会被记住。有一点需要注意:Keyameleon 在看到按键之后才切换,而且从不改动你的输入,所以在刚换用的键盘上按下的第一个键,仍可能使用之前的布局。

如果你用的是 macOS 14 或 15,可以考虑 Keychange,参见 Keyameleon 与 Keychange 对比。想要命令行方案,请参见 Keyameleon 与 autokbisw 对比。

疑难解答

  • 只有几个键不对(Shift 附近、1 左边、Return 附近):键盘类型错了。重做第 2 步。
  • 大部分符号都不对:当前输入法与键盘上印刷的布局不符。检查输入法菜单。
  • ⌘ 和 Option 好像反了:按第 3 步为该键盘设置修饰键。
  • Keyameleon 不切换:打开它的菜单栏菜单。那里会有提示说明问题所在,例如“输入监控”权限已关闭、切换已暂停,或者指定的布局已不再安装,并提供修复方法。
  • 输入密码时不切换:“安全输入”(Secure Input)开启时,例如在密码栏中,macOS 会对其他 App 隐藏键盘活动。关闭后切换会恢复。