mac右键菜单缺少常用app需手动注册:先完整启动app,再用lsregister刷新launchservices;对未声明文件类型的app可用拖拽法绑定;批量注入则用duti命令精准写入bundle id并刷新finder。

你在Mac上右键某个PDF、Markdown或日志文件时,“打开方式”子菜单里总缺了Obsidian、VS Code或IINA这些常用软件,说明系统没把它们注册进LaunchServices默认应用列表——必须手动触发注册或强制写入,否则每次都要点“其他…”再找.app文件。
让新装App自动出现在“打开方式”列表中
刚安装的应用(比如Typora、Acorn或Bear)默认不会立刻出现在右键菜单里,因为macOS只在首次启动时尝试注册UTI,而很多应用跳过了这步。
第一步:确保该App已从访达或Dock中完整启动过一次,不要双击后直接关掉,至少让它在菜单栏出现图标并保持运行5秒。
第二步:打开终端,执行以下命令强制刷新LaunchServices缓存:/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
第三步:等待命令执行完毕(约10~20秒),期间Finder会自动重启。完成后,任意文件右键→“打开方式”,新App就会出现在列表顶部或中部。
【必须等终端命令完全结束再操作,中途关闭终端会导致注册不全】
把不在列表里的App手动塞进“打开方式”
有些专业工具(如IINA、Keka、Hex Fiend)压根不向系统声明支持的文件类型,图形界面永远找不到它们——这时得用拖拽法绕过注册逻辑。
方法一:拖文件到Dock图标
找到一个目标文件(例如 demo.mp4)→ 按住鼠标左键不放 → 直接拖到Dock中目标App图标上(如IINA)→ 松手前图标会放大并显示“打开”字样 → 松手后弹出提示:“是否使用此应用程序打开所有 .mp4 文件?”→ 点“使用”。
方法二:拖文件到访达中的App位置
在访达中打开“应用程序”文件夹 → 找到目标App(如Sublime Text)→ 把一个目标文件(如 script.py)拖到该App图标上 → 松手 → 系统弹出绑定确认框 → 点“使用”。
注意:若拖拽后无反应,说明该App未正确签名或被隔离,先右键→“显示简介”→点“仍要打开”解除隔离。
用duti命令精准注入缺失的App到默认列表
当你要批量让几十个App出现在不同文件类型的“打开方式”里,或者某个App明明装了却死活不显示,duti是唯一能直写LaunchServices数据库的工具。
① 先安装duti:打开终端,运行 brew install duti(若未装Homebrew,请先执行 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")。
② 查出目标App的Bundle ID:在终端输入 osascript -e 'id of app "Obsidian"'(把Obsidian换成你的App名),回车后返回类似 md.obsidian 的字符串。
③ 执行注入命令:例如让Obsidian出现在所有.md文件的“打开方式”列表中,运行 duti -s md.obsidian public.plain-text all;若只想注入列表但不设为默认,去掉最后的 all 参数。
④ 刷新生效:运行 killall Finder,Dock和访达重启后,右键任意.md文件,“打开方式”里就能看到Obsidian了。











