前言

作为在 macOS 上开发的用户,经常遇到代码文件双击打开等了很久最终是在 Xcode 中打开的,而手动为某种类型文件设置默认打开方式后又不生效,这个体验就很阴间。

偶然的机会在 Twitter 上看到有人用 duti 这个工具实现为 macOS 设置文件的默认打开方式。

安装

brew install duti

使用

duti -h
usage: duti [ -hvV ] [ -d uti ] [ -l uti ] [ settings_path ]
usage: duti -s bundle_id { uti | url_scheme } [ role ]
usage: duti -x extension

可以使用如下命令设置某种类型文件的默认打开应用:

duti -s bundle_id { uti | url_scheme } [ role ]

要获取应用的 Bundle ID 可以使用如下命令:

osascript -e 'id of app "APP_NAME"'

APP_NAME 替换为你要获取的应用名称。

例如要获取 Visual Studio Code 的 Bundle ID 可以执行如下命令:

osascript -e 'id of app "Visual Studio Code"'
com.microsoft.VSCode

关于什么是 Uniform Type Identifiers(UTI) 可以参考苹果的文档。

例如我们要将 .conf 类型的文件都使用 Visual Studio Code 来打开,那么可以执行如下命令:

duti -s com.microsoft.VSCode .conf all

# 验证是否成功
duti -x .conf
Visual Studio Code
/Applications/Visual Studio Code.app
com.microsoft.VSCode

Finder

然后在到 Finder 中双击打开,可以发现一切都正常了!

I hope this is helpful, Happy hacking…