菜单编辑器完全指南

这份文档讲清楚每一个菜单类型该怎么配属性面板每个字段是什么意思,以及最容易困惑的显示规则

刚装好、想先跑通一个菜单,请看使用说明;只想写脚本,请看脚本菜单


一、界面

主窗口顶部有三个页签:右键菜单状态栏菜单插件管理。前两个都是菜单编辑器,用法完全一样,区别见第六节

编辑器由三栏组成:

位置 是什么 你在这里做什么
左:模板库 所有可用的菜单模板 找到想要的功能,加到中间
中:你的菜单 Finder 右键菜单的实际内容 排序、嵌套、删除
右:属性面板 选中项的所有设置 改标题、图标、显示条件、执行方式

三栏的分隔条都可以拖动调整宽度,退出后会记住。窗口本身也可以调整大小。

模板库有什么

左栏按功能分组,包含:

  • 新建文件 — Markdown、Excel、AI、CSS 等各类空白文档模板
  • 打开方式 — 用指定应用打开选中的文件
  • 常用目录 — 一键跳转到下载、桌面、文稿等
  • 复制到 / 移动到 — 把选中项送到常用位置
  • 内置功能 — 复制路径、剪切文件、新建文件夹、复制文件名、粘贴图片为 PNG、计算总大小
  • 脚本 — 现成的实用脚本,可以直接用也可以改
  • 插件 — 已安装插件提供的菜单

顶部搜索框可以按名字过滤。

把菜单加进来

三种方式,效果一样:

  1. 从左栏到中间
  2. 双击左栏的模板,加到菜单末尾
  3. 在左栏模板上右键 → 添加到菜单

拖动时中间栏会出现一条蓝色横线,标出松手后菜单项会落在哪里。

从零新建(不用模板)

模板库里没有合适的,就在中间栏右键 → 添加,直接建一个空的:新建文件、复制到…、移动到…、打开文件夹、打开方式…、脚本、子菜单、分隔线。

新项落在哪里,取决于你右键的是什么:

右键的位置 新项落在
一个普通菜单项 下面,成为同级
一个子菜单 里面,排在末尾
空白处(且当前没有选中项) 顶层末尾

在空白处右键不会取消已有的选中。如果之前选着某一项,新项照样落在那一项旁边——想加到顶层末尾,先在空白处点一下取消选中。

同一个右键菜单里还有「移除」和「重置」。「重置」只对来自模板库的项可用,自己建的项和分组是灰的。

排序、嵌套、删除

  • 排序:在中间栏上下拖动
  • 嵌套:拖到一个「子菜单」项上,就成为它的下级
  • 新建子菜单:中间栏右键 → 添加 → 子菜单
  • 删除:选中后按 Delete

两种拖放反馈要分清

你看到的 松手后
蓝色横线 出现在两项之间 插到那个位置,成为同级
目标行整行高亮 放进那一项里面,成为它的下级

高亮的那一行上还会内联显示你正在拖的菜单项名字,确认目标没搞错。

改动什么时候生效

即时生效,没有保存按钮。 在属性面板里改完一个字段(输入框失去焦点、下拉框选完、勾选框点完),改动立刻写入并同步到 Finder。

改错了按 ⌘Z 撤销,⇧⌘Z 重做。


二、做出第一个菜单

以「用 Visual Studio Code 打开」为例,从零到能用:

  1. 中间栏右键 → 添加打开方式…
  2. 新建出来的项叫「打开方式…」,在右侧「基本」页把标题改成 用 VS Code 打开
  3. 往下找到打开方式配置
    • 打开方式选「应用名称」
    • 目标Visual Studio Code(就是应用在「应用程序」里显示的名字,不含 .app
  4. 切到「显示」页,显示时机选「仅选中文件时」
  5. 完成。去 Finder 里右键任意文件试试

左栏模板库里有一整组配好的「使用 X 打开」,拖过来改个目标也能用。这里走右键新建, 是因为它把每个字段都留给你填——过一遍就知道它们分别管什么。

如果菜单没出现,看常见问题里的「右键菜单不显示?」。


三、菜单类型逐个说明

类型 干什么 必须填
新建文件 在当前目录建一个指定类型的空文件 文件模板
内置功能 执行一项内置操作
打开方式 用指定应用打开选中项 目标应用
打开文件夹 在 Finder 里打开指定目录 目标文件夹
复制到 / 移动到 把选中项复制/移动到指定目录 目标文件夹
脚本 执行自定义脚本 脚本内容
插件 调用插件提供的功能 无(由插件决定)
子菜单 容器,用来收纳其它菜单项
分隔符 一条横线,用来分组

新建文件

当前 Finder 目录创建一个新文件。

  • 文件模板 — 决定新文件的初始内容。下拉里是所有已有模板(Shell.shMarkdown.md 这类)
  • 目标扩展名 — 留空则用模板自带的扩展名;填了则覆盖它。例如模板是 Markdown.md,这里填 mdx,创建出来就是 .mdx带不带开头的点都行,程序会自动补
  • 创建后打开(在「执行」页)— 勾上则创建完立刻用默认应用打开

下方三个按钮:

按钮 作用
导入模板… 挑一个现成文件存成模板。想要带页眉的 Word、配好的 .gitignore、有固定头部的脚本,都可以先做好一份再导进来。同名文件已存在会导入失败
在 Finder 中显示 打开模板文件夹。想直接改某个模板的内容就走这里
删除模板 删掉当前选中的模板文件,会先弹窗确认

内置功能

六个开箱即用的操作,不需要任何配置:

名称 作用
复制路径 把选中项的完整路径复制到剪贴板
复制文件名 只复制文件名(含扩展名)
剪切文件 剪切,之后可在别处粘贴
新建文件夹 在当前目录建一个新文件夹
粘贴图片为 PNG 把剪贴板里的图片存成当前目录下的 PNG
计算总大小 算出选中项占用的总空间并显示

打开方式

用指定应用打开选中的文件。打开方式决定「目标」怎么填:

打开方式 目标填什么 例子
应用名称 应用在「应用程序」里的显示名,不含 .app Visual Studio Code
应用标识 Bundle ID com.microsoft.VSCode
应用路径 完整路径 /Applications/Visual Studio Code.app
系统服务 服务名(「服务」菜单里看到的那个) Open in Terminal

「目标」下面的「选择应用…」按钮可以直接从已安装的应用里挑,不用手打,也不会打错。

每个文件单独打开(在「执行」页)— 多选时,为每个文件各起一个独立实例。绝大多数应用不需要勾(它们自己能一次接收多个文件);给一次只能开一个文档的老程序用。选「系统服务」时这个选项不适用,会自动隐藏。

打开文件夹 / 复制到 / 移动到

三个都需要填目标文件夹,点右边按钮选目录即可。

  • 打开文件夹 — 在 Finder 里打开这个目录,和选中了什么无关
  • 复制到 / 移动到 — 把选中项送到这个目录
    • 在 Finder 中显示(在「执行」页)— 勾上则操作完自动跳到目标目录并高亮结果

脚本

最灵活的一种。详见脚本菜单,这里只说属性面板上的三个字段:

  • 解释器 — 用什么来跑这段脚本。可以填命令名(bashzshpython3node)或完整路径(/opt/homebrew/bin/python3
  • 环境变量 — 每行一条 KEY=VALUE。留空则用系统默认。常见用途是补 PATH
  PATH=/opt/homebrew/bin:/usr/local/bin
  LANG=zh_CN.UTF-8
  • 脚本内容 — 脚本正文。选中的文件路径以 $1$2… 传入,工作目录自动设为当前 Finder 目录

注意这一页只有「脚本」类型才出现——上图的页签是基本 / 脚本 / 显示 / 执行 四个, 而前面那些截图里只有三个。

「解释器」和「环境变量」标题后面的 点开有即时说明,不用来回翻文档。

插件

由插件提供,标题和图标跟着插件走。属性面板顶部会显示「来自插件:<插件名>」,点「管理此插件…」可以跳到插件管理页。

你仍然可以给它单独设置显示规则和执行方式——这些是你的设置,不会被插件更新覆盖。

子菜单与分隔符

  • 子菜单 — 纯容器。没有「显示」和「执行」页,因为它自己不做任何事
  • 分隔符 — 一条横线。永远显示,不受任何规则影响

四、属性面板字段速查

属性面板最多有四个页签,按菜单类型显示:

页签 什么时候出现
基本 总是
脚本 仅「脚本」类型
显示 除「子菜单」和「分隔符」外都有
执行 除「子菜单」和「分隔符」外都有

基本

字段 说明
标题 菜单里显示的文字
类型 只读,显示这一项是什么菜单类型。类型在添加时就定了,之后不能改——想换类型就删掉重加
启用 关掉则这一项不出现在菜单里,但配置保留
显示图标 关掉则只显示文字
图标 点「选择图标…」可选内置图标或本地图片文件。本地图片会自动缩放到菜单尺寸,不用担心大图拖慢菜单
快捷键 仅状态栏菜单有。点一下输入框然后按组合键即可录入。右键菜单没有这一项——Finder 的右键菜单不接受自定义快捷键

显示

这是最需要理解的一页。 它决定「什么情况下这条菜单才出现」。

显示时机

一个四选一下拉,是所有规则的总开关:

选项 什么时候出现
总是显示 不管选中了什么、甚至什么都没选(在空白处右键)都出现
仅选中文件时 只在选中项里有文件、且文件满足下面的条件时出现
仅选中目录时 只在选中项里有目录、且目录满足下面的条件时出现
选中文件或目录时 文件条件目录条件满足任一即出现

三个要点:

  1. 选「总是显示」时,下面的文件/目录条件全部不生效。 想按扩展名过滤,就不能选「总是显示」
  2. 在 Finder 空白处右键(什么都没选)时,只有「总是显示」的菜单会出现。 「复制路径」这类需要选中文件的菜单不会出现,这是正常的
  3. 文件条件和目录条件是「或」的关系,不是「且」。选「选中文件或目录时」,只要其中一边满足就显示

文件条件

字段 说明
名称匹配 三选一:不限制 / 扩展名 / 正则
模式列表 匹配用的模式,可以加多条,任一条命中即算匹配
需有执行权限 (+x) 只对有可执行权限的文件显示。给「在终端运行」这类菜单用
最少 / 最多 选中文件的数量范围,0 表示不限制

扩展名怎么填:一次填一个,带不带开头的点、大小写都可以 —— jpg.jpgJPG.JPG 都会被规范成 jpg,列表里统一显示成小写不带点的形式。重复添加同一个扩展名会被忽略。

点「+」弹出的输入框会根据你选的是「扩展名」还是「正则表达式」给出对应的说明和示例,照着填即可:

正则怎么用:对文件名(不含路径)做匹配,且是部分匹配——只要文件名里有一段能匹配上就算命中,不需要从头匹配到尾。例如 ^IMG_ 匹配所有以 IMG_ 开头的文件,\.tar\.gz$ 匹配 .tar.gz 结尾的。

数量限制有个容易误会的地方:最少/最多算的是经过前面条件过滤之后剩下的数量,不是你选中的总数。

举例:菜单设了「扩展名 = jpg」「最多 1」。你选中了 3 个文件,其中只有 1 个是 jpg。 过滤后剩 1 个 jpg,满足「最多 1」,菜单会显示

目录条件

和文件条件一样,少了「需有执行权限」。

「名称匹配」这里的扩展名指的是目录本身的扩展名 —— macOS 上 .app.xcodeproj.bundle.framework 这些其实都是目录。想让菜单只对 Xcode 工程出现,选「扩展名」填 xcodeproj 就行,不用写正则。

上图选的是「仅选中文件时」,所以下方「目录」整段是灰的 —— 显示时机是总开关, 没勾到的那一边,它的条件填了也不生效,界面直接禁用掉免得白填。

执行

字段 说明
权限 见下
需要确认 勾上则每次执行前弹窗问一次。给删除、覆盖这类不可逆操作用
提示方式 无 / 系统通知 / 显示结果
播放声音 勾上则执行完播一声,右边可以选音效(默认 Glass)

另外还有三个只在特定类型下出现的勾选框,也在这一页:

字段 出现在
创建后打开 新建文件
每个文件单独打开 打开方式
在 Finder 中显示 复制到 / 移动到

权限三选一:

选项 行为
普通用户 以你的身份执行。绝大多数情况用这个
管理员 以 root 执行,首次需要输一次管理员密码
每次询问 每次执行时弹窗让你选这一次用哪种身份。仅对「脚本」类型有效

提示方式三选一:

选项 行为
静默执行
系统通知 执行完发一条系统通知
显示结果 弹窗显示脚本的输出。仅对「脚本」类型有效——其它类型没有「输出」可显示

五、显示规则组合速查

想让菜单在这些时候出现,照着设:

我想要 显示时机 其它设置
任何时候都能用(包括空白处右键) 总是显示
只对图片 仅选中文件时 名称匹配=扩展名,填 jpg png gif heic webp
只对单个文件 仅选中文件时 最少 1、最多 1
只对多个文件(批量操作) 仅选中文件时 最少 2
只对文件夹 仅选中目录时
只对 Xcode 工程 仅选中目录时 名称匹配=扩展名,填 xcodeproj
只对可执行文件 仅选中文件时 勾「需有执行权限 (+x)」
只对以 IMG_ 开头的文件 仅选中文件时 名称匹配=正则,填 ^IMG_
文件和文件夹都能用 选中文件或目录时
压缩包(含 .tar.gz) 仅选中文件时 名称匹配=正则,填 \.(zip\|rar\|7z\|tar\.gz)$

六、状态栏菜单有什么不同

「状态栏菜单」页签的编辑器长得一样,但有三处差异:

1. 没有「显示」页。 状态栏菜单是从菜单栏图标点开的,那时候没有「选中的文件」这个概念, 所以文件/目录条件对它没有意义。属性面板只剩基本 / 执行两页(脚本类型会多一页「脚本」)。

2. 多了「快捷键」。 在「基本」页的「界面配置」下。点一下输入框然后按组合键即可录入, 按下快捷键直接执行,不用点开菜单。

3. 模板库只列不依赖选中文件的分组 —— 常用目录和插件。新建文件、打开方式、复制到 这些都要有选中的文件才有意义,所以不出现在这里。

想在状态栏放一段脚本,模板库里没有,走中间栏右键 → 添加 → 脚本。右键的「添加」 不受这个限制,8 种类型都给。

注意需要文件路径的脚本放在这里拿不到 $1 —— 状态栏菜单执行时没有”选中的文件”。


七、常见需求配方

把选中的图片批量转成 PNG

菜单类型:脚本

  • 显示时机:仅选中文件时
  • 名称匹配:扩展名 → jpg jpeg heic webp
  • 解释器:bash
  • 脚本内容:
  for f in "$@"; do
      sips -s format png "$f" --out "${f%.*}.png"
  done
  • 提示方式:系统通知

在当前目录打开终端

菜单类型:脚本

  • 显示时机:总是显示
  • 脚本内容:open -a Terminal "$PWD"

把选中项收进「稍后整理」

菜单类型:移动到

  • 显示时机:选中文件或目录时
  • 目标文件夹:选一个你的暂存目录
  • 勾「在 Finder 中显示」

只对单个大文件计算校验和

菜单类型:脚本

  • 显示时机:仅选中文件时
  • 最少 1、最多 1
  • 脚本内容:shasum -a 256 "$1" | pbcopy
  • 提示方式:系统通知

用管理员权限编辑系统配置

菜单类型:脚本

  • 显示时机:仅选中文件时
  • 权限:管理员
  • 勾「需要确认」
  • 脚本内容按需

八、恢复默认与排错

恢复默认

中间栏底部的「恢复默认」只动内置菜单

  • 被你删掉的内置菜单会恢复
  • 被你改过的内置菜单(改名、排序、各项设置)会还原成出厂值
  • 你自己添加的菜单、自建脚本、插件菜单全部原样保留

点下去会先弹窗确认。恢复之后撤销记录会被清空——那些记录指向的菜单项已经被重建,⌘Z 撤不回来了。

改了没反应

  1. 确认菜单项的「启用」是开的
  2. 确认「显示时机」和当前选中的东西对得上——最常见的原因是设了「仅选中文件时」却在空白处右键
  3. 确认名称匹配的模式写对了(扩展名不带点)
  4. 还是不行看常见问题

菜单太多找不到

用子菜单收纳,或把不常用的「启用」关掉——关掉的项配置还在,随时可以打开。

开发者文档
使用帮助
使用说明 菜单编辑器指南 插件管理 设置说明 脚本菜单 常见问题
脚本开发
开发指南
插件开发
快速开始 开发指南 示例插件
API 参考
概览 API 查询 插件信息 日志 Finder 上下文 插件设置 国际化
UI 与交互
对话框 进度条 系统通知 选择器 WebView 状态栏 Dock
文件与路径
文件操作 路径工具 Finder 操作 废纸篓 扩展属性 元数据 文件监听
数据格式
JSON Plist CSV XML PDF 图片
文本与编码
字符串 正则表达式 日期时间 颜色 加密编码
系统
Shell 命令 进程管理 应用管理 系统信息 AppleScript 快捷指令
系统信息
网络信息 电源/电池 屏幕/外观 音频控制 蓝牙设备 位置服务
网络
HTTP 请求 WebSocket URL 工具
输入与剪贴板
键盘模拟 鼠标模拟 全局热键 剪贴板 窗口管理
存储
SQLite Keychain UserDefaults
媒体
文字识别 二维码
工具
归档 类型标识 分享 定时器 防休眠 并发/协程