需用.net 6+运行imewlconvertercmd.dll将搜狗userdict.db转为plist,再通过plistbuddy注入系统词典并重启textinput进程,方可使mac自带输入法识别自定义术语。

想让Mac自带输入法识别你长期在搜狗里积累的专业术语、人名、公司名和方言词组,就得把搜狗导出的用户词库(.db格式)转换成系统能读的plist结构,再注入到「文本替换」底层词典中——这一步绕过图形界面限制,但必须用命令行完成。
准备转换工具与运行环境
先确认Mac已安装.NET 6或更高版本:打开终端,执行dotnet --version,若返回6.0.x或8.0.x即达标;未安装则去dotnet.microsoft.com下载macOS SDK安装包。不要用.NET Core 3.1或更旧版本,【它们无法运行ImeWlConverterCmd.dll】。
从GitHub搜索“ImeWlConverter”下载最新release版压缩包,解压后得到ImeWlConverterCmd.dll文件,记下它所在路径,例如/Users/yourname/Downloads/ImeWlConverter/。
将UserDict.db转为Mac可识别的plist
确保你已有搜狗导出的UserDict.db文件(来自Windows电脑或Mac上通过搜狗设置→词库→导出/备份生成)。把它拷贝到Mac桌面,重命名为userdict.db以便命令行输入简洁。
打开终端,进入ImeWlConverter所在目录:cd /Users/yourname/Downloads/ImeWlConverter/。
执行转换命令:dotnet ImeWlConverterCmd.dll -i:db /Users/yourname/Desktop/userdict.db -o:plist /Users/yourname/Desktop/userdict.plist。
等待几秒,终端输出Conversion completed successfully.即表示转换成功。若报错Unable to load DLL 'sqlite3',说明缺少SQLite原生库——需手动下载libsqlite3.dylib并放入同一目录,或改用方法二跳过此步。
注入plist到系统用户词典
第一步:备份原始词典以防误操作:cp ~/Library/Preferences/ByHost/.GlobalPreferences.*.plist ~/Desktop/backup.plist。
第二步:用PlistBuddy将新词典条目追加进系统配置:/usr/libexec/PlistBuddy -c "Add :NSUserDictionaryReplacementItems array" ~/Library/Preferences/ByHost/.GlobalPreferences.*.plist 2>/dev/null || true。
第三步:导入转换好的plist内容:/usr/libexec/PlistBuddy -c "Merge /Users/yourname/Desktop/userdict.plist :NSUserDictionaryReplacementItems" ~/Library/Preferences/ByHost/.GlobalPreferences.*.plist。
第四步:强制刷新输入法缓存:打开“活动监视器”,搜索TextInput进程,选中后点击顶部“X”图标强制退出;系统会自动重启该服务,约3秒后生效。
验证与调试
打开备忘录,随便输入一个你词库里的高频词缩写(如“zj”对应“致歉信已发出”),看是否触发上屏。若无反应,检查userdict.plist是否为空——常见原因是搜狗导出的.db文件本身为空或损坏,需回到Windows端重新导出一次。
若候选框出现乱码或崩溃,说明plist中存在非法Unicode字符。此时用Xcode打开userdict.plist,手动删掉含符号的整条
这一步操作起来很简单,直接把文件拖进去就行。











