Mac输入法中英文自动切换、来回乱跳,通常可通过四步彻底解决:先调整输入源顺序,再关闭自动切换选项,接着解除 Caps Lock 绑定,最后停用简繁转换服务并重置缓存。

不少用户在 Mac 上打字时,都会遇到输入法在中文和英文之间频繁自动切换的问题。比如写代码时突然弹出中文候选框,在终端输入 git 命令时又被强制切回中文。其实,这种情况多数不是 macOS 系统故障,而是默认输入法机制在起作用。想彻底禁止 Mac 输入法自动切换中英文,需要同时从输入源顺序、自动切换开关、Caps Lock 绑定以及服务层干预这四个方面处理,少一步都可能反复出现。
锁定默认输入源顺序
第一步:点击左上角苹果图标 →「系统设置」→ 左侧「键盘」→ 右侧「文字输入」→ 点击右下角「编辑…」。
第二步:在输入源列表中,将你平时主要使用的中文输入法(如“简体拼音”)拖到最上方。【排在顶部的输入源就是全局默认输入法,所有新打开的窗口在首次获得焦点时,都会优先继承这一状态】。
第三步:如果列表中还保留“ABC”或“美国”输入法,选中后点击减号删除。只保留一个中文输入法后,Shift 键切换中英文会更稳定,也能避免多个输入源循环切换导致的混乱。
关闭“自动切换到文稿的输入法”
这个选项一旦开启,Mac 会记录你在每个 App 中最后一次使用的输入法,并在切回该应用时自动恢复。表面上看很智能,实际上却很容易造成输入法自动跳转,比如VS Code一切回来就变成中文,Terminal点开后又自动切到英文。
返回「系统设置」→「键盘」→「文字输入」页面,直接取消勾选「自动切换到文稿的输入法」。
注意:关闭后通常不需要重启系统,但已经打开的 App 需要你手动切换一次输入法,设置才会真正生效。
切断Caps Lock的中英文绑定
方法一:禁用输入法级Caps Lock切换
进入「系统设置」→「键盘」→「文字输入」→「编辑…」,找到当前启用的中文输入法(如“简体拼音”)→ 点击右侧「选项」→ 取消勾选「使用大写锁定键切换‘[上次所用的拉丁输入法]’输入法」。
方法二:关闭系统级Caps Lock输入源切换
打开「系统设置」→「键盘」→「键盘快捷键」→ 左侧选择「输入源」→ 右侧找到「使用大写锁定键切换输入源」→ 取消勾选。
【如果这个选项显示为灰色且无法点击,通常说明切换权限已被第三方输入法接管,此时必须先执行方法一】。
停用简繁自动转换服务
部分繁体输入法(如注音、仓颉)会默认启用后台简繁转换功能。表面看像是输入法自动切换,实际上是输入内容被悄悄转换成简体,进而触发系统重新匹配输入源状态,造成二次跳变。
在「系统设置」→「键盘」→「文字输入」→「编辑…」中,向下滚动找到「将文本转换为简体中文」→ 取消勾选。
随后立即打开「终端」,执行:killall TextInputServer。这一步不能省略,否则刚刚修改的设置可能不会立即生效。
重置输入法底层缓存
如果完成以上设置后,Mac 输入法仍偶尔自动切换中英文,通常说明 HIToolbox 服务中还残留了错误的输入源历史缓存。
打开「终端」,依次执行以下命令:
defaults delete ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSourceHistory
killall HIToolbox
执行第二条命令后,菜单栏中的输入法图标通常会闪动一下,这表示相关服务已经刷新完成。
