
1. 先想明白Mac 右键里为什么压根没有“新建文件”用了十几年 Mac 的人第一次从 Windows 迁过来最容易犯的一个毛病就是在桌面空白处右键找“新建文本文档”找了两分钟没找到然后怀疑自己鼠标坏了。Mac 右键新建文件这件事不是系统坏了也不是你不会用而是 macOS 从设计之初就没打算把这个动作放在右键菜单里。想快速新建 txt、Word、Excel 这些常用格式得先理解它背后的逻辑再决定用哪种方式补上这个能力。1.1 Finder 的逻辑是“应用优先”不是“文件系统优先”Windows 资源管理器的思路是“文件系统优先”右键是操作文件系统的入口所以有新建、有属性、有格式化。Finder 的思路是“应用优先”文件是应用产生的副产品Finder 只负责组织和展示不负责凭空造一个文件。你在 Finder 里点“新建”系统其实不知道该给你建什么、用什么打开、归谁管因为一个零字节的空文件在 macOS 眼里是没有类型的。这一点和 macOS 的类型识别机制有关。系统用统一类型标识UTI来判断一个文件是什么、该由哪个应用打开而这个标识往往依赖扩展名和文件头信息。一个刚建的、内容为空、扩展名还要靠你手动补的文件在系统看起来就是个模糊对象。所以系统干脆把“新建文档”这件事交还给应用本身要写文档就打开文档应用要记便签就用便签Finder 不掺和。这个设计在“应用生态丰富”的前提下是合理的但对习惯了右键新建的人来说就是纯纯的体验缺口。更实际的一层原因Finder 的右键菜单是动态构建的系统会根据当前选中的对象类型、已安装的扩展、系统版本动态拼菜单。早期系统并没有给第三方开放“新建文件”这个动词后来虽然开放了“快速操作”和“访达扩展”两个口子但入口依然藏得比较深很多人根本不知道有这回事。1.2 三种补法成本与体验差得很远我踩过的坑是一开始图省事装了个右键增强工具用了半年系统大版本一升级扩展失效右键菜单直接变成空白还找不到卸载残留。后来才老老实实回到系统自带的两条路上。目前能实现“Mac 快速新建 txt”的方案按成本从低到高大概分三层临时性方案终端touch一条命令或者把模板文件拖到目标文件夹再改名。零成本、零安装适合偶尔用一次。常驻性方案用系统自带的“自动操作”Automator或“快捷指令”做成“快速操作”直接挂在右键菜单的“快速操作”子菜单里。一次配置长期可用系统升级基本不受影响。增强性方案第三方右键菜单增强工具。开箱即用、支持格式多但要装访达扩展、要授权限稳定性取决于工具维护情况。提示如果你只是偶尔需要新建一个 txt 记点东西别折腾工具先学会终端那一条命令就够了。工具是给“每天要建十几个文件”的人准备的。1.3 先对号入座再决定动手不同使用强度的人最优解完全不同。我在下面这张表里把常见人群和推荐路径对上了你可以直接对照自己的情况选不用把三种方案全做一遍。使用场景每日新建文件量推荐方案配置耗时稳定性偶尔记笔记、写临时文本1 至 3 个终端touch或模板拖拽10 秒极高日常写文档、做表格5 至 20 个自动操作做快速操作20 分钟高多格式混用、还要建演示稿20 个以上模板仓库 多套快速操作40 分钟高不想碰脚本、要开箱即用任意右键增强类工具5 分钟看工具维护需要跨设备一致体验任意快捷指令15 分钟中高选方案的核心判断标准只有两条你愿不愿意花二十分钟配置以及你能不能接受系统大版本升级后重新折腾一次。想清楚这两点后面就简单了。2. 方案选型系统自带的两条主力路径怎么选2.1 自动操作与快捷指令差别比想象中大系统自带的两条路——自动操作和快捷指令——表面看都能做“右键新建文件”实际能力边界差挺多。自动操作是老牌的工作流工具优势是能直接嵌 AppleScript 和 Shell 脚本做文件操作、路径判断、重名处理这些事非常顺手生成的.workflow文件还能直接拷贝给别人用、扔进备份盘换机器复制过去就能跑。缺点是界面老气动作库里的动作命名有点反直觉新手第一次找“运行 AppleScript”这个动作要找半天。快捷指令是后起之秀界面友好能跟手机、平板同步做“在 Finder 中显示”这类入口也很方便。但它的脚本能力相对弱复杂逻辑要靠“运行 AppleScript”动作转一道手而且在 Finder 里的入口有时候会被系统藏起来需要手动去设置里勾选“在访达中显示”。我的建议很直接**逻辑复杂、要处理重名、要读模板的用自动操作只是想在多台设备上有一致的动作用快捷指令。**两者并不冲突我现在是自动操作做主力快捷指令留了一个“快速新建文本”作为备用。2.2 第三方右键增强工具能用但要看清边界市面上有一批专门做右键菜单增强的工具装上之后右键里会多出“新建文件”菜单支持 txt、docx、xlsx、pptx、md 等几十种后缀有的还能自定义模板、加“用指定应用打开”。体验确实最接近 Windows配置成本也最低。但我必须提醒几件事。第一这类工具大多依赖访达扩展扩展需要单独在系统设置里授权很多人装完发现右键没反应就是扩展没启用。第二访达扩展的加载受系统版本影响很大大版本升级后扩展失效是常见现象我曾经遇到过一次升级后右键菜单直接变成一片空白排查了半天才发现是扩展崩了。第三部分工具会在后台读取目录信息涉及隐私装之前最好看一眼它的权限申请和更新频率长期不更新的工具谨慎使用。2.3 终端和模板拖拽别小看这两个土办法终端方案被严重低估了。touch 文件名.txt这一条命令在任何目录下都能一秒钟建好文件配合cd或者直接把终端窗口拖到目标文件夹效率其实比右键还高。模板拖拽法更原始准备一个“模板”文件夹里面放好空白 txt、空白 docx、空白 xlsx需要的时候按住 Option 键把它拖到目标目录系统会自动生成副本而不是移动原文件。这两个办法的共同优点是零配置、零依赖、永远不会因为系统升级失效。缺点是它们不解决“我要在当前位置立刻建一个文件”这个动作的连贯性。所以你经常会看到一种组合日常用快速操作批量或临时用终端两者互补。3. 手把手实操一用“自动操作”做一个通用的新建文本文件3.1 创建快速操作的完整流程打开“自动操作”在启动台或聚焦搜索里搜“自动操作”就能找到弹出的模板选择窗口里选“快速操作”不要选“应用程序”。这一步选错后面做出来的东西就没法挂到右键菜单上。新建之后在右侧顶部的两个下拉框里设置工作流接收的输入。第一个选“文件夹”第二个选“访达”。这里是最关键的一步也是绝大多数人第一次做失败的原因**如果你把输入类型设成“文件”那么在文件夹空白处右键时因为当前没有选中任何文件这个快速操作根本不会出现在菜单里。**设成“文件夹”之后你在空白处右键、或者选中一个文件夹右键都能触发它。接着在左侧动作库里搜“运行 AppleScript”把它拖到右边的工作区。默认代码是on run {input, parameters}开头的那段整个替换成我下面的版本。最后按 CmdS 保存名字就叫“新建文本文件”保存位置保持默认即可它会被自动放进系统的服务目录。3.2 一段能直接跑通的脚本与逐行解释下面这段是我在实际使用中反复调整过的版本处理了“选中文件时建在哪”“选中文件夹时建在哪”“空白处右键建在哪”“重名自动加序号”这几个最容易出问题的场景on run {input, parameters} set baseName to 未命名 set extName to txt if (count of input) 0 then set selPath to POSIX path of (item 1 of input) set isDir to (do shell script test -d quoted form of selPath echo yes || echo no) is yes if isDir then set folderPath to selPath else set folderPath to do shell script dirname quoted form of selPath end if else tell application Finder to set folderPath to POSIX path of (target of front window as alias) end if if folderPath does not end with / then set folderPath to folderPath / set filePath to folderPath baseName . extName set i to 2 repeat while (do shell script test -e quoted form of filePath echo yes || echo no) is yes set filePath to folderPath baseName i . extName set i to i 1 end repeat do shell script touch quoted form of filePath tell application Finder to reveal (POSIX file filePath as alias) return filePath end run逐段说清楚。前半段判断当前上下文如果右键时选中了东西就拿第一个选中项的路径再用 shell 的test -d判断它是文件夹还是文件是文件夹就直接当目标目录是文件就取它的父目录。如果没有选中任何东西就取访达最前面那个窗口的当前目录。这里用target of front window而不是insertion location是因为前者在绝大多数场景下更稳后者在某些系统版本里返回的路径会带上额外层级。中间那段是重名处理。直接touch一个已存在的文件不会报错但会把原文件的时间戳改掉而且不会生成新文件你会以为脚本没跑。所以先用test -e探测撞名就加空格和序号直到不冲突为止。最后两行touch建文件reveal在访达里选中它。reveal这一句我强烈建议保留因为文件建出来之后你大概率要马上改名或者打开自动选中能省掉一次手动找的动作。所有路径拼接都用了quoted form of这是处理中文路径、带空格路径的关键少了它路径里有空格就会直接报错。3.3 挂快捷键、改名、复制给其他格式保存之后立刻去测试在桌面空白处右键看“快速操作”子菜单里有没有“新建文本文件”。如果没有先别急着改脚本去系统设置里的键盘快捷键页面找到“服务”分类往下翻勾选刚做出来的这一项。有些版本里它归在“快速操作”分类下位置不太一样。快捷键我配的是 ControlOptionN理由是它跟系统自带的 CmdShiftN新建文件夹形成一组肌肉记忆不会打架。配置入口同样在键盘快捷键的“服务”或“快速操作”里点右边的“添加快捷键”录制组合键。注意别跟应用内的快捷键冲突比如某些编辑器里 ControlOptionN 是有别的含义的。想再做 Word 和 Excel 的版本最省事的办法不是重写脚本而是把这段脚本复制一份只改开头两行的baseName和extName再用模板法下一章讲替换touch那一句。这样你右键菜单里会出现“新建文本文件”“新建 Word 文档”“新建 Excel 表格”三条各配一个快捷键用起来就完全是 Windows 的手感了。4. 手把手实操二把 Word、Excel、Pages 这些格式也拉进右键4.1 为什么文档类必须用模板法txt 是纯文本touch建一个空文件就能直接用。但 docx、xlsx、pptx 这些格式本质上是压缩包结构里面有一堆 XML 定义样式、页面、主题你touch出来的零字节文件双击照样打不开或者打开了报错说文件损坏。这不是权限问题是格式决定的。所以文档类必须走模板法先手工做一份“空白但已配置好样式”的模板文件放在固定目录里新建的时候用cp把它复制到目标位置再改名。这样做还有个额外好处——你可以把常用的格式预先写进模板比如 Word 模板里设好中文字体、行距、页边距Excel 模板里冻结首行、设好列宽、写好表头每次新建出来的文件直接就是能用的状态省掉每次调格式的时间。4.2 建一个属于你的模板仓库在家目录下建一个名为Templates的文件夹路径就是~/Templates/。这个名字别用中文别带空格后面写脚本会省很多事。然后往里放模板文件我的命名习惯是在文件名前加“空白”两个字一眼能看出它是模板目标格式模板文件名扩展名建议预置内容纯文本空白文本.txttxt无或写一行编码声明Word 文档空白文档.docxdocx中文字体、首行缩进、1.5 倍行距Excel 表格空白表格.xlsxxlsx冻结首行、列宽、常用表头演示文稿空白演示.pptxpptx母版配色、标题占位符富文本空白富文本.rtfrtf字号、字体Markdown空白笔记.mdmd常用 Front Matter 头制作模板的要点打开对应应用新建一个空文档把样式调好然后另存为到~/Templates/文件名按上表来。千万别在里面留任何正文内容否则每次新建都要手动删。Word 的模板如果不小心留了空段落可以在保存前全选删除再保存。注意模板文件本身不要设成只读有些同步工具会把只读属性带到副本上导致新建出来的文件改不了。如果确实想防止误改模板可以复制完成后再给副本加写权限。4.3 一个通用的“从模板新建”脚本把第 3 章那段脚本的结尾改掉换成从模板复制。完整版本如下注意tplName这一行换格式就改这一行on run {input, parameters} set tplName to 空白文本.txt set tplPath to (POSIX path of (path to home folder)) Templates/ tplName -- 目标目录判断逻辑同上 if (count of input) 0 then set selPath to POSIX path of (item 1 of input) set isDir to (do shell script test -d quoted form of selPath echo yes || echo no) is yes if isDir then set folderPath to selPath else set folderPath to do shell script dirname quoted form of selPath end if else tell application Finder to set folderPath to POSIX path of (target of front window as alias) end if if folderPath does not end with / then set folderPath to folderPath / -- 从模板名推导出新文件名和扩展名 set AppleScripts text item delimiters to . set nameParts to text items of tplName set extName to last item of nameParts set baseName to text 1 thru -2 of tplName set AppleScripts text item delimiters to set filePath to folderPath baseName . extName set i to 2 repeat while (do shell script test -e quoted form of filePath echo yes || echo no) is yes set filePath to folderPath baseName i . extName set i to i 1 end repeat do shell script cp quoted form of tplPath quoted form of filePath tell application Finder to reveal (POSIX file filePath as alias) return filePath end run关键改动就两处一是cp替代touch二是从模板文件名自动推导扩展名和基础名这样你复制多份脚本时只需要改tplName一行其他全不用动出错概率大幅下降。text 1 thru -2 of tplName这一句是去掉最后一个字符配合前面按点切分刚好把扩展名剥掉逻辑上有点绕但很稳。保存时给每条起一个明确的名字“新建文本文件”“新建 Word 文档”“新建 Excel 表格”“新建 Markdown 笔记”。名字里带格式右键菜单里一眼就能认出来。如果你的菜单里项太多可以做个二级归类名字统一加个前缀比如都叫“新建 - xxx”排序上会聚在一起。4.4 快捷指令版本作为跨设备的备份方案如果家里有多台 Mac或者你想在平板、手机上也有类似动作可以用快捷指令做一个平行的版本。流程是新建快捷指令添加“运行 AppleScript”动作把上面的代码贴进去然后在快捷指令的详情设置里勾选“在访达中显示”或者“用作快速操作”接收输入类型设为文件夹。快捷指令版本的短板是脚本调试体验差报错信息不如自动操作直观而且“在访达中显示”这个开关在不同系统版本里的位置会变。但它有个独特优势动作本身会同步到你的其他设备换电脑登录账号之后右键菜单直接就有了不用重新配置。5. 手把手实操三终端与键盘流的高效补充5.1 几条真正好用的终端命令终端方案我用了很多年几条命令记熟之后速度其实比右键还快。最基础的建空文件touch ~/Desktop/未命名.txt带内容一起建的用重定向echo 第一条记录 ~/Desktop/记录.md要建一个带多行内容的文件用 heredoc 更干净不用来回敲转义cat ~/Desktop/会议记录.md EOF # 会议记录 日期 参会人 结论 EOF从模板复制跟脚本里的逻辑一样但可以批量cp ~/Templates/空白表格.xlsx ~/Desktop/日报.xlsx批量建同名前缀的一组文件用循环比手点快一百倍for i in 01 02 03 04 05; do cp ~/Templates/空白文本.txt ~/Desktop/笔记$i.txt; done在终端里最实用的一个习惯先cd到目标目录后面的命令就全用相对路径省得每条都写一长串绝对路径。把终端窗口拖到目标文件夹上路径会自动填进去这个操作很多人不知道。5.2 用 open 命令直接起应用并建新档有些场景你不想要空白文件而是想直接打开应用开始写。这时用open -a指定应用再跟上文件路径open -a TextEdit ~/Desktop/草稿.txt open -a Pages ~/Desktop/新文稿.pagesopen -a后面跟的是应用名称名称里有空格就用引号包起来。如果应用已经打开这条命令会把文件交给已打开的实例如果没打开会先启动再打开文件。配合前面的touch就变成“先建文件再打开编辑器”一条龙f~/Desktop/草稿-$(date %H%M).txt; touch $f open -a TextEdit $f这里用$(date %H%M)生成带时间的文件名避免撞名一条命令解决建文件、开编辑器两件事。保证只有touch成功才执行打开不然会弹一个“文件不存在”的报错。5.3 编码、扩展名这些容易翻车的地方用终端建的文件默认是 UTF-8 无 BOM这本身没问题问题出在打开它的应用上。系统自带的文本编辑默认是富文本模式你打开一个.txt它可能按 RTF 处理存回去就变成了.rtf或者带一堆格式标记。正确姿势是打开后在菜单里切到“制作纯文本”或者干脆在文本编辑的偏好设置里把默认格式改成纯文本。扩展名隐藏是另一个高频坑。系统默认隐藏已知类型的扩展名你建了一个未命名.txt访达里显示的是“未命名”你以为没建成功其实是建好了只是没显示后缀。可以按 CmdI 看简介或者在访达设置里勾选“显示所有文件扩展名”。这里有个小提醒显示扩展名之后改文件名时务必保留后缀很多新手手一抖把.docx删了文件就打不开了——扩展名一改系统就不知道它是什么类型双击也不会用正确的应用打开。还有一条**touch出来的零字节文件在某些同步盘里会被忽略。**我自己踩过这个坑在云盘目录里建了个空 txt本机看得见另一台机器上死活同步不过去折腾半天才发现是同步工具跳过了空文件。解决办法很简单建的时候顺手写一个字符进去printf \n ~/云盘目录/未命名.txt一个换行符文件大小变成 1 字节同步就正常了。这个细节任何教程都不会写但真碰上能省你半小时。6. 常见问题排查实录右键没反应到底卡在哪6.1 快速操作不出现或灰掉按这个顺序查这大概是被问得最多的问题。排查顺序我整理成了一条链路跟着走基本能定位第一步确认输入类型。回去打开自动操作看工作流的两个下拉框是不是设成了“文件夹”和“访达”。设成“文件”是最常见的失败原因因为文件夹空白处右键时没有选中文件条件不满足菜单项直接不显示。这一步占了我见过的问题里的七成。第二步确认服务已勾选。系统设置 → 键盘 → 键盘快捷键 → 服务或快速操作找到你刚做的项看左边的勾有没有打上。系统有时候会把新加的服务默认设为不启用。第三步确认文件存在。快速操作保存后会生成一个.workflow文件可以去~/Library/Services/目录看一眼有没有对应的文件夹。如果没有说明保存那一步失败了可能是名字冲突或者磁盘权限问题重新保存一次换个名字试试。第四步重启访达。按住 Option 键右键点访达图标选“重新开启”或者用活动监视器强制退出访达它会自动重启。服务列表是访达启动时加载的新加的服务有时候要重启才认。6.2 权限报错和云盘目录的坑脚本第一次运行时系统会弹权限请求问你是否允许自动操作控制访达、是否允许访问某些文件夹。这时候一定要点允许点拒绝之后不会每次都弹而是静默失败你会看到脚本跑完什么也没发生。报错码-1743就是典型的权限被拒。修复路径在系统设置 → 隐私与安全性分别看“自动化”“文件和文件夹”“完全磁盘访问权限”三个分类把自动操作加进去。有个细节加完之后最好退出自动操作再重开权限变更才生效。云盘目录是另一个重灾区。桌面和文稿目录如果开了云同步实际路径可能被重定向到一个隐藏的本地缓存目录脚本里用path to desktop拿到的路径和访达显示的路径可能对不上。我遇到过reveal报“找不到文件”但文件明明在桌面上。解决办法是改用访达当前窗口的实际路径或者干脆避开云同步目录做测试确认脚本逻辑没问题再切回去。外置磁盘和网络卷也有类似问题部分快速操作在这些位置不可用因为系统对非本地卷的支持有限。这不是你配置错了换个本地目录试一下就能确认。6.3 常见问题速查表现象最可能的原因处理方式右键菜单里找不到快速操作输入类型设成了“文件”改回“文件夹”并重新保存菜单项是灰的点不动服务未勾选启用键盘快捷键设置里勾选点了之后毫无反应脚本权限被拒隐私与安全性里授权自动化报错说找不到文件云同步目录路径被重定向换本地目录测试或改用实际路径建出来的文件双击打不开零字节或扩展名被改写入至少一个字符保留后缀中文文件名乱码编码不是 UTF-8用quoted form of包路径统一 UTF-8文件建到了错误的位置前台窗口判断失准先选中目标文件夹再触发大版本升级后全部失效服务缓存或扩展失效重启访达必要时重存一次6.4 两条我踩过坑之后的经验第一条**脚本先在脚本编辑器里跑通再贴进自动操作。**自动操作的报错提示很简陋就一句“运行 AppleScript 动作时出错”具体是哪一行、什么原因一概不说。而在脚本编辑器里语法错误会直接标红运行结果和返回值也看得见。我现在的习惯是先在脚本编辑器里用硬编码路径测试逻辑跑通了再把路径判断那段换掉贴进自动操作一次成功率能到九成以上。第二条**给脚本加一个显式的返回值和提示。**自动操作里脚本返回值默认会被传给下一个动作如果后面没有动作返回值就被丢弃了。但你可以在最后加一句display notification建完文件弹一条通知确认动作真的执行了。这比盯着文件夹看快多了尤其在你同时开了十几个窗口的时候display notification filePath with title 文件已创建7. 我现在的组合方案以及几条不写在文档里的建议折腾到现在我最终的配置是主力用自动操作做的四个快速操作分别对应 txt、docx、xlsx、md各配一个快捷键模板仓库放在家目录的Templates下用 Git 做版本管理换机器直接克隆下来就能用终端留了两条别名命令放在 shell 配置文件里处理批量任务第三方工具一个都没装。关于快捷键的搭配我摸索出的规律是不要贪多四个以内全部用 ControlOption 作为前缀后面跟一个和格式相关的字母比如 T 对应 txt、W 对应 Word、X 对应 Excel、M 对应 Markdown。前缀统一的好处是记忆负担低按错键也只是弹出个无关的菜单不会误操作别的东西。超过四个快捷键你大概率会记混。关于模板维护我的做法是每个季度打开模板文件检查一遍把样式过时的、字体被系统替换掉的修一修顺手清掉误存的正文内容。听起来很琐碎但新建出来的文档格式统一比每次新建完再调格式省的时间多得多。特别是表格模板把常用的列宽、数字格式、冻结窗格都预置好日报、周报写起来是真的快。最后说一个容易被忽略的点如果你经常在同一个目录下建一堆文件与其每次新建完再改名不如把脚本里的baseName改成带日期时间格式的比如用 shell 命令date %Y%m%d-%H%M生成文件名。这样建出来的文件天然有序、天然不重名后面按文件名排序就能找到省掉“未命名 3”这种看着就烦的名字。我用了这个改动之后桌面上再也没出现过“未命名 27”这种文件。