macOS 在访达右键用 VS Code 打开文件或文件夹
macOS 在访达右键用 VS Code 打开文件或文件夹
在 Windows 上,右键用编辑器打开文件或文件夹是很常见的操作。到了 macOS,如果你也想在 访达(Finder)里右键直接用 VS Code 打开,最稳的做法不是手写 .workflow 文件,而是直接用 Automator 新建“快速操作”。
这样做有几个好处:
- 系统原生支持,兼容性更稳
- 能同时支持 文件 和 文件夹
- 重装系统或换机器后,照着再配一次也很快
这篇就把完整做法整理一下,后面需要时可以直接照着操作。
最终效果
配置完成后,在 Finder 里:
- 右键某个文件
- 或右键某个文件夹
你就能在 “快速操作” 或 “服务” 菜单里看到:
1 | Open in VS Code |
点一下,就会直接用 VS Code 打开目标文件或目录。
一、先确认 code 命令可用
在 macOS 里,Automator 本质上还是通过命令调用 VS Code,所以第一步要先确认终端里能直接使用 code。
打开 VS Code,按下:
1 | Cmd + Shift + P |
然后搜索并执行:
1 | Shell Command: Install 'code' command in PATH |
执行完成后,打开终端检查:
1 | which code |
如果输出类似下面这样,说明已经配置成功:
1 | /opt/homebrew/bin/code |
如果没有输出,也别急,后面脚本里我也会顺手兼容几种常见路径。
二、用 Automator 创建 Finder 右键菜单
1)打开 Automator
先打开:
1 | 自动操作 / Automator |
然后:
- 点击 新建文稿
- 选择 快速操作
这里一定要选“快速操作”,不要选应用程序,也不要选其他工作流类型。
2)设置接收对象和作用位置
在窗口顶部,把工作流设置成下面这样:
- 工作流程收到当前:
文件或文件夹 - 位置:
访达
这一步非常关键。
如果这里设置错了,最常见的结果就是:
- Finder 右键菜单里根本看不到这个服务
- 或者只能处理一部分目标,体验不完整
3)添加“运行 Shell 脚本”动作
在左侧搜索框里输入:
1 | 运行 Shell 脚本 |
把它拖到右侧工作区,然后把参数设置成:
- Shell:
/bin/zsh - 传递输入:
作为参数
这里选“作为参数”也很重要,因为 Finder 选中的文件或文件夹路径会通过参数传进来。
4)填入脚本
把下面这段脚本粘进去:
1 | for f in "$@" |
这段脚本的意思很简单:
- 先尝试 Apple Silicon Mac 常见路径:
/opt/homebrew/bin/code - 再尝试 Intel Mac 常见路径:
/usr/local/bin/code - 最后再尝试系统 PATH 中的
code
这样写的好处是:
- 兼容不同芯片和安装方式
- 少踩路径不一致的坑
- 换机器时成功率更高
5)保存快速操作
按下:
1 | Cmd + S |
名称建议直接保存成:
1 | Open in VS Code |
保存后,系统通常会把它放到:
1 | ~/Library/Services/ |
后面如果你想备份、迁移或者删除这个服务,也可以到这里找。
三、重启 Finder
保存完成后,建议重启一下 Finder,让新服务尽快生效。
在终端执行:
1 | killall Finder |
Finder 会自动重新打开,不用担心。
四、测试是否生效
回到 Finder,任选一种方式测试:
- 右键某个文件
- 右键某个文件夹
然后查看下面两个位置:
- 快速操作
- 服务
如果一切正常,你应该能看到:
1 | Open in VS Code |
点击之后,VS Code 就会直接打开对应的文件或目录。
五、常见问题排查
1)右键菜单里看不到 “Open in VS Code”
优先检查这三项:
检查 1:Automator 顶部设置是否正确
必须是:
- 文件或文件夹
- 访达
只要这里选错,右键菜单就很可能不会显示。
检查 2:服务是否被系统关闭
打开:
1 | 系统设置 → 键盘 → 键盘快捷键 → 服务 |
看一下 Open in VS Code 有没有被禁用。
检查 3:重启 Finder
1 | killall Finder |
很多时候,保存完服务但菜单还没刷新,重启 Finder 就好了。
2)菜单能看到,但点击后提示“服务无法运行,配置不正确”
这种情况通常说明:
- 这个
.workflow是手写出来的 - 工作流结构不完整
- 动作参数和 Finder 传入格式不匹配
这也是为什么我不太建议手写 workflow XML。
最稳的解决办法不是继续硬改文件,而是直接重新用 Automator 图形界面新建一个快速操作。
可以简单理解为:
- 手写 workflow:可能“显示出来了”,但不一定真能跑
- 用 Automator 新建:更符合系统预期,成功率更高
3)终端里找不到 code
在终端执行:
1 | which code |
如果没有输出,就回到 VS Code 里重新执行:
1 | Shell Command: Install 'code' command in PATH |
执行完之后,建议:
- 关闭当前终端窗口
- 重新打开终端
- 再运行一次
which code
这样通常就恢复正常了。
六、为什么推荐 Automator,而不是手写 workflow
如果你只是想要一个 稳定、可长期复用 的 Finder 右键入口,那 Automator 其实就是最省事的解法。
原因很简单:
- Finder 对服务的识别和运行有自己的规则
- 手写
.workflow文件容易出现“菜单显示了,但点击报错” - Automator 生成的结构更符合 macOS 的预期
- 出问题时也更容易排查
所以这类需求,优先追求“稳”和“省事”,比追求“能不能纯手写”更实用。
七、最省事的做法总结
如果你只想快速搞定这件事,按下面四步走就够了:
- 在 VS Code 里安装
code命令 - 用 Automator 新建一个“快速操作”
- 脚本里调用
code - 重启 Finder 并测试
基本上这样一次就能配好,后面迁移到新机器时也很好复用。
八、可直接复制的脚本
最后把脚本单独贴一次,方便直接复制:
1 | for f in "$@" |
如果你后面还想继续折腾,也可以再扩展成:
- 右键“用 Cursor 打开”
- 右键“用终端打开当前目录”
- 右键“在 iTerm 中打开”
但如果只是为了解决 Finder 里右键用 VS Code 打开文件或文件夹,这套已经够稳、够省事了。




