Mac终端无法直接列出当前启用的输入法,但可通过defaults读取com.apple.HIToolbox.plist中AppleSelectedInputSourceHistory的最新项获取当前输入法名称;或用PlistBuddy提取AppleEnabledInputSourceIDs获得已启用输入法ID列表;还可通过AppleScript命令osascript -e 'input method name of current application as text'或查询AXInputSourceSwitcherButton属性实时获取当前输入法名称。

Mac终端无法直接列出当前启用的输入法列表,因为输入法管理属于图形界面(GUI)层的系统服务,终端命令行工具默认不暴露该状态;但可通过调用macOS原生框架接口间接获取已注册输入源的完整配置信息。
使用defaults命令读取输入法配置文件
打开终端,执行以下命令:
defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSourceHistory
该命令会输出一个数组,其中每个字典项代表一次输入法切换记录,【最新一项的InputSourceKind和LocalizedName字段即为当前实际激活的输入法名称】。注意:此结果反映的是最近一次手动切换的历史快照,并非实时监听状态。
若提示“Domain ... does not exist”,说明尚未进行过任何输入法切换操作,需先在图形界面中至少切换一次再执行。
用PlistBuddy提取全部已启用输入法
第一步:确认输入法配置路径存在
ls ~/Library/Preferences/com.apple.HIToolbox.plist
第二步:使用系统内置工具提取完整输入源列表
/usr/libexec/PlistBuddy -c "Print :AppleEnabledInputSourceIDs" ~/Library/Preferences/com.apple.HIToolbox.plist 2>/dev/null
这条命令会逐行打印所有已启用输入法的唯一标识符(如com.apple.keylayout.ABC、com.apple.inputmethod.SCIM.Pinyin)。这些ID本身不可读,但可与系统预置映射表对照——例如com.apple.keylayout.ABC对应美式英文,com.apple.inputmethod.SCIM.Pinyin对应简体中文-拼音。
注意:PlistBuddy不会自动翻译ID为人类可读名,需结合“系统设置→键盘→输入源”界面中的显示顺序人工比对。
通过AppleScript实时获取当前输入法名称
方法一:终端内直接运行脚本
osascript -e 'input method name of current application as text'
该命令依赖前台应用支持AppleScript输入法查询,部分沙盒化App(如VS Code、Chrome)可能返回空值或报错。
方法二:更可靠的跨应用方案
osascript -e 'tell application "System Events" to get the value of attribute "AXValue" of first UI element whose subrole is "AXInputSourceSwitcherButton"'
此命令模拟点击菜单栏输入法图标的行为,直接抓取右上角图标旁显示的文本内容(如“简体中文-拼音”或“EN”),【要求已启用菜单栏输入法图标,否则返回错误】。

















