尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

mac效率提升:批量设置文件默认打开方式

mac效率提升:批量设置文件默认打开方式
📅 发布时间:2026/7/8 19:50:31

花 5 分钟学会一个命令,从此双击任何文件,都能用你喜欢的软件打开——再也不用每次手动选。


你是不是也遇到过这种事?

用 mac的朋友大概都有过这种经历:双击一个.rs文件,蹦出来 Xcode;点一下.go,又跳出来 VS Code;.py 是 PyCharm,.js 是 WebStorm……

每天切换七八个编辑器,点一下文件弹一个不一样的程序,效率很低,体验也很割裂。

更崩溃的是,你明明已经装了喜欢的编辑器——比如 VS Code、Sublime Text 或者 CotEditor——但系统就是不用它。每次都要右键 → 打开方式 → 从列表里找 → 点击打开,一天下来重复几十遍。

有人说,这不是什么大事,忍忍就过去了。但问题是,这种事每天会发生几十次。每一次多花 3 秒钟,一年下来就是好几个小时的纯粹浪费。更别提那种"被系统牵着走"的烦躁感了。

mac其实有一个彻底的解决方法:用一行命令,批量设置某类文件的默认打开方式。而你只需要一个极小的命令行工具duti。


duti 是什么?

它是一个开源的 macOS 命令行工具,用来查看和管理系统中的默认应用关联(UTI / file association)。

它的核心能力就两件事:

  • 查看:某个扩展名当前用什么程序打开
  • 设置:把某个扩展名改成用指定程序打开

关键特点是:一行命令,立即生效,不需要打开"系统设置"点来点去。

它有多大呢?只有几十 KB,比你手机上一张表情包还小。没有界面,没有弹窗,就在后台安安静静地帮你干活。


安装(一条命令搞定)

打开 Mac 自带的"终端"(按Command + 空格搜索"终端"),输入下面这一行:

brewinstallduti

等几秒钟,就装完了,可以立即使用。就这么简单。

如果还没有安装 Homebrew,可以先在终端里运行下面命令来安装:

/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完 Homebrew 后,再执行上面的brew install duti就行了。


核心命令速查

学会这四个命令,基本就够用了:

做什么命令
查看某扩展名默认应用duti -x pdf
设置某扩展名的默认应用duti -s <Bundle ID> .<ext> all
查看某应用的 Bundle IDosascript -e 'id of app "应用名称"'

Bundle ID 是 macOS 给每个应用的唯一标识,格式类似com.apple.TextEdit。上面最后一行命令就是用来查它的。


实操:把 CotEditor 设为所有代码文件的默认编辑器

这里用一个实际场景来演示。

我有一个很喜欢用的轻量编辑器叫CotEditor(macOS 平台上口碑很好的开源编辑器)。我想把它设为所有代码、配置、脚本文件的默认打开方式,让每次双击都默认使用它打开。

CotEditor 的 Bundle ID 是com.coteditor.CotEditor,确认一下:

osascript-e'id of app "CotEditor"'# 输出: com.coteditor.CotEditor

好,开始批量设置。


1. 文本与配置文件

日常最常遇到的几类:

duti-scom.coteditor.CotEditor .txt all duti-scom.coteditor.CotEditor .conf all duti-scom.coteditor.CotEditor .log all duti-scom.coteditor.CotEditor .cfg all duti-scom.coteditor.CotEditor .toml all

2. 系统兜底设置

这一步是点睛之笔。

macOS 用 UTI(Uniform Type Identifier)来标识文件类型,而不是扩展名。如果你把系统最基础的 UTI 也指向 CotEditor,那对于那些没有扩展名、或者扩展名不在你设置范围内的文件,系统也会自动回退到 CotEditor 打开。

duti-scom.coteditor.CotEditor public.plain-text all duti-scom.coteditor.CotEditor public.data all
  • public.plain-text:所有纯文本文件
  • public.data:所有数据文件(最基础的兜底类型)

这样一来,除非你明确指定了其他应用,否则 CotEditor 就是默认中的默认。


3. 所有编程语言文件

Rust / Go / C / C++ / Shell / INI:

duti-scom.coteditor.CotEditor .rs all duti-scom.coteditor.CotEditor .go all duti-scom.coteditor.CotEditor .C all duti-scom.coteditor.CotEditor .cpp all duti-scom.coteditor.CotEditor .cxx all duti-scom.coteditor.CotEditor .cc all duti-scom.coteditor.CotEditor .sh all duti-scom.coteditor.CotEditor .ini all

Python / CSS / JavaScript / TypeScript:

duti-scom.coteditor.CotEditor .py all duti-scom.coteditor.CotEditor .pyw all duti-scom.coteditor.CotEditor .pyi all duti-scom.coteditor.CotEditor .css all duti-scom.coteditor.CotEditor .js all duti-scom.coteditor.CotEditor .mjs all duti-scom.coteditor.CotEditor .cjs all duti-scom.coteditor.CotEditor .jsx all duti-scom.coteditor.CotEditor .ts all duti-scom.coteditor.CotEditor .tsx all duti-scom.coteditor.CotEditor .mts all duti-scom.coteditor.CotEditor .cts all

小提示:你可以一次性把上面所有命令复制到一个文本文件里(比如叫setup.sh),以后换了新 Mac 或者帮朋友设置,运行一次就全好了。


4. 一个注意点

HTML 文件(.html/.htm)在 macOS 系统内部被标记为public.html类型,duti 对它有内置保护(会报error -54),改不了。这是系统级限制,不影响其他所有文件类型。


最终效果

一次操作下来,CotEditor 已成为以下25 个扩展名 + 2 个系统 UTI的默认打开方式:

.txt, .conf, .log, .cfg, .toml, .rs, .go, .C, .cpp, .cxx, .cc, .sh, .ini, .py, .pyw, .pyi, .css, .js, .mjs, .cjs, .jsx, .ts, .tsx, .mts, .cts

双击任意代码文件,直接走 CotEditor 打开。现在不需要再在Mac Dock 上切来切去,也不需要右键 → 打开方式 → 选择程序。


不想用 CotEditor?换成你喜欢的软件

思路完全一样,只是 Bundle ID 不同。这里列出几个常用编辑器的 ID,直接替换命令里的 ID 即可:

编辑器Bundle ID
CotEditorcom.coteditor.CotEditor
TextEditcom.apple.TextEdit
Xcodecom.apple.dt.Xcode
VS Codecom.microsoft.VSCode
Sublime Textcom.sublimetext.4
BBEditcom.barebones.bbedit

比如你用的是 VS Code,把上面的com.coteditor.CotEditor全部替换成com.microsoft.VSCode就行。


需要注意的地方

HTML 文件改不了:.html和.htm文件在 Mac 系统内部有特殊保护,duti 会报一个error -54的错误,改不了默认打开方式。这是苹果的系统级限制,不是 duti 的问题。好在 HTML 文件默认是浏览器打开,大多数情况下也不需要修改。

设置后立刻生效:不需要重启电脑,也不需要注销。命令执行完的那一刻就生效了。

怎么改回来?如果想恢复某个文件类型的默认打开方式,用同样的命令指定另一个软件的 ID 就行。比如想改回系统自带编辑器:duti -s com.apple.TextEdit .txt all。


总结

duti这个东西很小,但它解决的是 mac上最日常、最繁琐的一个痛点——文件双击后蹦出哪个程序,这件事每天会发生几十次,每次都要切一次,积少成多就是巨大的时间浪费。

好消息是,你只需要花 5 分钟,用duti一行命令搞定,一次设置,永久生效。


如果这篇文章对你有帮助,欢迎点赞、推荐、转发三连。你的每一次支持,都是我继续写下去的动力。

相关新闻

  • TongWeb 7.0 Spring Boot 应用外置容器部署:3步完成JAR到WAR的迁移与配置
  • CSAPP Shell Lab 信号竞争解决:3步阻塞SIGCHLD,避免addjob/deletejob冲突
  • 九江排队火锅实测测评|理性避坑,就餐选型指南

最新新闻

  • Chrome DevTools 3种刷新模式详解:F5、Ctrl+F5 与清空缓存的 HTTP 请求差异
  • 纽扣电池供电优化:NBM5100A与PIC18F4550的低功耗设计
  • Apache Flink <=1.11.2 未授权上传漏洞:从 Jar 包到 RCE 的 3 层防御绕过分析
  • Struts2 S2-009 (CVE-2011-3923) 漏洞原理深度解析:从OGNL绕过到RCE的3层逻辑
  • Apache Shiro 1.2.4 反序列化漏洞深度解析:从RememberMe Cookie到RCE的完整攻击链
  • 微信小程序用户协议与隐私政策:5个审核驳回案例分析与修复方案

日新闻

  • PROPKA 3深度解析:蛋白质pKa预测的实战指南与算法原理
  • 微信小程序 globalData 监听:基于 Object.defineProperty 的 3 种实现方案对比
  • MySQL 8.0 数据清洗实战:3类异常值识别与 UPDATE/DELETE 批量处理

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号