Mac输入法中英文乱跳需四步解决:一调输入源顺序,二关自动切换开关,三断Caps Lock绑定,四停简繁转换服务并重置缓存。

Mac上打字时输入法反复在中英文间跳来跳去,写代码突然弹出中文候选框,终端里敲git命令被强制切到中文——这不是bug,是系统默认行为在作祟。必须从输入源顺序、自动切换开关、Caps Lock绑定、服务层干预四个层面同时干预,缺一不可。
锁定默认输入源顺序
第一步:点击左上角苹果图标 →「系统设置」→ 左侧「键盘」→ 右侧「文字输入」→ 点击右下角「编辑…」。
第二步:在输入源列表中,把你要长期使用的中文输入法(如“简体拼音”)拖拽到最顶部位置。【顶部输入源即为全局默认,所有新窗口首次聚焦时都会继承该状态】。
第三步:如果列表里还留着“ABC”或“美国”输入法,选中它→点击减号删除。只保留一个中文输入法后,Shift键就能稳定切换中英文,不再受多输入源循环干扰。
关闭“自动切换到文稿的输入法”
这个开关一旦开启,Mac会记住你在每个App里最后一次用的输入法,并在你切换回该App时自动还原——听起来很智能,实际却导致VS Code刚切回来就弹中文、Terminal点一下就变英文。
回到「系统设置」→「键盘」→「文字输入」界面,直接取消勾选「自动切换到文稿的输入法」。
注意:勾选状态消失后无需重启,但已打开的App需手动切换一次输入法才能生效。
切断Caps Lock的中英文绑定
方法一:禁用输入法级Caps Lock切换
在「系统设置」→「键盘」→「文字输入」→「编辑…」中,找到你启用的中文输入法(如“简体拼音”)→ 点击右侧「选项」→ 取消勾选「使用大写锁定键切换‘[上次所用的拉丁输入法]’输入法」。
方法二:关闭系统级Caps Lock输入源切换
进入「系统设置」→「键盘」→「键盘快捷键」→ 左侧选「输入源」→ 右侧找到「使用大写锁定键切换输入源」→ 取消勾选。
【若此选项灰显不可点,说明已被第三方输入法接管,必须优先执行方法一】。
停用简繁自动转换服务
繁体输入法(如注音、仓颉)默认启用后台简繁转换,表面看是输入法切换问题,实则是打出来的字被偷偷转成简体,触发系统重新匹配输入源状态,造成二次跳变。
在「系统设置」→「键盘」→「文字输入」→「编辑…」中,向下滚动找到「将文本转换为简体中文」→ 取消勾选。
立刻打开「终端」,执行:killall TextInputServer。这一步必须做,否则设置不生效。
重置输入法底层缓存
当上述操作完成仍偶发异常时,说明HIToolbox服务残留了错误的输入源历史记录。
打开「终端」,依次执行以下命令:
defaults delete ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSourceHistory
killall HIToolbox
执行完第二条命令后,菜单栏输入法图标会闪一下,表示服务已刷新。

















