Skip to content
0

macOS 移除 ABC 输入法(仅保留第三方输入法) ​

背景说明 ​

在 macOS 中,即使用户只使用第三方输入法(如鼠须管/Squirrel、搜狗拼音、微信键盘等),系统在切换输入法时仍然会保留 ABC(美国)输入法,在以下场景可能造成困扰:

  • 按错切换快捷键时不小心切到 ABC,需要再切回来
  • 某些游戏或应用会强制切换到 ABC 输入法
  • 希望完全屏蔽系统自带输入法,保持输入体验的一致性

注意:macOS 10.15+ 系统对输入法管理更加严格,完全删除 ABC 输入法可能导致某些场景下的输入问题。建议根据个人需求谨慎操作。

方法一:修改 plist 文件(推荐) ​

macOS 的输入法配置存储在 com.apple.HIToolbox.plist 文件中,通过编辑该文件可以移除 ABC 输入法。

步骤 ​

1. 打开配置文件

shell
# 使用 Xcode 打开(如果已安装)
sudo open ~/Library/Preferences/com.apple.HIToolbox.plist

# 或使用 PlistBuddy 命令行工具(无需 Xcode)
/usr/libexec/PlistBuddy -c "Print" ~/Library/Preferences/com.apple.HIToolbox.plist

2. 删除 ABC 输入法条目

使用 Xcode 打开时:

  1. 依次展开 Root → AppleEnabledInputSources
  2. 找到包含 KeyboardLayout Name = ABC 的 item
  3. 选中该 item 后按 Delete 键删除

使用命令行(PlistBuddy)时:

shell
# 先查看当前启用的输入法列表,找到 ABC 对应的索引
/usr/libexec/PlistBuddy -c "Print :AppleEnabledInputSources" ~/Library/Preferences/com.apple.HIToolbox.plist

# 删除指定索引的条目(假设 ABC 在索引 0)
/usr/libexec/PlistBuddy -c "Delete :AppleEnabledInputSources:0" ~/Library/Preferences/com.apple.HIToolbox.plist

3. 重启或注销登录

修改完成后,需要注销当前用户并重新登录或重启电脑才能使更改生效。

方法二:使用命令行脚本一键移除 ​

如果你熟悉命令行,可以使用以下脚本自动移除 ABC 输入法:

shell
#!/bin/bash

PLIST="$HOME/Library/Preferences/com.apple.HIToolbox.plist"

# 备份原文件
cp "$PLIST" "$PLIST.backup.$(date +%Y%m%d%H%M%S)"

# 获取 AppleEnabledInputSources 的条目数
COUNT=$(/usr/libexec/PlistBuddy -c "Print :AppleEnabledInputSources" "$PLIST" 2>/dev/null | grep -c "Dict")

# 遍历并删除 ABC
for ((i=COUNT-1; i>=0; i--)); do
    NAME=$(/usr/libexec/PlistBuddy -c "Print :AppleEnabledInputSources:$i:KeyboardLayout Name" "$PLIST" 2>/dev/null)
    if [ "$NAME" = "ABC" ]; then
        echo "正在删除索引 $i 的 ABC 输入法..."
        /usr/libexec/PlistBuddy -c "Delete :AppleEnabledInputSources:$i" "$PLIST"
    fi
done

echo "完成!请注销并重新登录以生效。"

将上述内容保存为 remove_abc.sh,然后执行:

shell
chmod +x remove_abc.sh
./remove_abc.sh

方法三:使用第三方工具(HammerSpoon / Karabiner) ​

如果你不想修改系统文件,也可以通过键盘重映射工具实现类似效果:

Hammerspoon 方案 ​

lua
-- 在 ~/.hammerspoon/init.lua 中添加
local function forceSwitchInputMethod()
    -- 强制切换到指定输入法(如鼠须管)
    hs.keycodes.currentSourceID("com.googlecode.rimeinputmethod.Squirrel.Rime")
end

-- 监听输入法切换,如果切换到 ABC 则自动切回
hs.keycodes.inputSourceChanged(function()
    if hs.keycodes.currentSourceID() == "com.apple.keylayout.ABC" then
        forceSwitchInputMethod()
    end
end)

鼠须管的 SourceID 可能因版本不同而变化,可以通过 hs.keycodes.currentSourceID() 查看当前输入法的 ID。

如何恢复 ABC 输入法 ​

如果删除后遇到问题,或者需要恢复 ABC 输入法,可以:

方法一:从备份恢复 ​

shell
# 找到之前的备份并恢复
cp ~/Library/Preferences/com.apple.HIToolbox.plist.backup.xxxxxxx ~/Library/Preferences/com.apple.HIToolbox.plist

方法二:通过系统设置重新添加 ​

  1. 打开 系统设置 → 键盘 → 输入法
  2. 点击 编辑 → 添加输入法
  3. 选择 英语 → 美国(ABC) 添加即可

方法三:重置输入法配置 ​

shell
# 删除配置文件让系统重新生成(会重置所有输入法设置)
rm ~/Library/Preferences/com.apple.HIToolbox.plist

# 然后重启电脑
sudo reboot

常见问题 ​

1. 修改后输入法列表没有变化 ​

确保修改后注销并重新登录或重启电脑,仅重启输入法进程可能不生效。

2. 某些应用强制切换到 ABC ​

部分应用(尤其是游戏、Adobe 系列软件)会强制使用 ABC 输入法以确保快捷键正常工作。这是应用层面的行为,无法通过删除系统输入法解决。

3. 登录界面或密码输入框无法输入 ​

如果删除了 ABC 输入法,在某些安全输入框(如系统密码框)可能会遇到输入问题。建议至少保留一个拉丁字母输入法。

4. 文件修改后权限问题 ​

shell
# 修复文件权限
chmod 644 ~/Library/Preferences/com.apple.HIToolbox.plist
chown $(whoami) ~/Library/Preferences/com.apple.HIToolbox.plist

各输入法 SourceID 参考 ​

输入法SourceID
ABCcom.apple.keylayout.ABC
鼠须管(Rime)com.googlecode.rimeinputmethod.Squirrel.Rime
搜狗拼音com.sogou.inputmethod.sogou.pinyin
微信键盘com.tencent.inputmethod.wetype.pinyin
百度输入法com.baidu.inputmethod.BaiduIM.pinyin

可以通过以下命令查看当前所有可用的输入法 ID:

shell
/usr/libexec/PlistBuddy -c "Print :AppleEnabledInputSources" ~/Library/Preferences/com.apple.HIToolbox.plist
最近更新