mac可为不同app绑定专属输入法:终端默认美式键盘、备忘录默认拼音,需在系统设置中启用“自动切换到文稿的输入法”,再手动切换并重启app;也可用defaults命令为terminal等app强制指定输入源。

Mac上运行终端时总被中文输入法干扰,敲命令要反复按Control+空格切回英文;想让“终端”启动就自动用美式键盘,“备忘录”却始终用简体中文拼音——这种场景下必须把输入法和App一对一绑定,而不是全局切换。
通过系统设置为App绑定输入法
这一步直接写入系统级偏好,重启App即生效,且下次打开仍保持绑定状态。
1、点击屏幕左上角苹果菜单 → “系统设置”。
2、左侧边栏点“键盘”,右侧向下滚动找到并点击“文字输入”。
3、点右下角“编辑”按钮,确保已启用至少两个不同类型的输入法(例如“英语-美式键盘”和“简体中文-拼音”)。
4、勾选底部选项【自动切换到文稿的输入法】——这是关键前提,不勾选则后续绑定无效。
5、关闭窗口,打开目标App(如“终端”),在菜单栏输入法菜单中手动切换至你希望它默认使用的输入法(例如“英语-美式键盘”)。
6、保持该App前台运行,然后完全退出(Command + Q),再重新打开。此时它会记住并自动加载上次退出前使用的输入法。
用终端命令强制指定某App的默认输入法
适用于无法通过图形界面添加的App(如自制工具、未签名应用),或需要批量配置的场景。
方法一:修改App的Info.plist(需有写入权限)
进入App包内容:右键“终端.app”→“显示包内容”→打开Contents文件夹→用文本编辑器打开Info.plist。
在
保存后,重签或替换原文件需sudo权限;若提示只读,先执行chmod 644 Info.plist再编辑。
方法二:用defaults命令注入偏好(推荐,无需修改App本体)
在终端中运行:
defaults write com.apple.Terminal AppleSelectedInputSource -dict-add "InputSourceKind" "Keyboard Layout"
defaults write com.apple.Terminal AppleSelectedInputSource -dict-add "KeyboardLayout ID" "com.apple.keylayout.US"
这两条命令将美式键盘设为Terminal的默认输入源;若要改回拼音,把最后的"com.apple.keylayout.US"换成"com.sogou.inputmethod.sogou.pinyin"(以实际ID为准)。
注意:Bundle ID必须准确,可用osascript -e 'id of app "Terminal"'验证。
验证与故障排查
打开目标App后,观察菜单栏右上角输入法图标是否自动变为预期样式;若未生效,检查以下三点:
• 确认该App当前支持所选输入法(灰色图标表示不支持,常见于部分全屏游戏或旧版Java应用)。
• 若用defaults写入后无效,尝试执行killall -HUP SystemUIServer刷新输入法服务。
• 部分App(如VS Code)会覆盖系统输入法设置,需在自身设置中禁用“自动切换输入法”选项。











