article_image

在 macOS 中, ⌘Command-C 意味着拷贝(Copy), ⌘Command-D 意味着复制(Duplicate), ⌘Command-I 意味着查看信息(Get Info), ——但,⌘Command-R 并不意味着重命名(Rename)。

很多问题需要通过波利亚放大镜去考虑:越宏大,越有可能解决。在高斯引入复数之前,解方程曾经困扰了几代数学家,但一夜之间,事情变得简单了。思考用户端编程(用户自动化)问题,也无需忌惮波利亚放大镜之洋气,不妨拿来一用。

例如 macOS 上的文件重命名,乍看上去,似乎全是糟糕的交互设计,并且零零散散、无从抓起。例如重命名单个文件,除非你使用列表视图——但桌面根本无此选项——不然就只能在极其逼仄的小框框里面打字,堪比用 1 寸屏的 MP3 看小说。

Alt text
命名单个文件的输入框非常狭小

批量重命名则是另一种不幸。重命名(Rename)没有原生快捷键不说,好端端的 ⌘Command-R 竟然被划给了“Show Original”(显示 Alias 替身文件的原始文件),纯属明珠暗投。就连“Show Original”的命名也像是醉酒后的产物,估计设计者当时脑子里想的应该是“Reveal Original”,不知怎么最后就弄成了“Show”。也罢,没有快捷键倒也不用杀头,毕竟我可以习惯用英文首字母定位,但在涉及 iCloud 的文件夹中,偏偏又有“Remove Downloads”选项横空杀出,挡在重命名选项前面,正事没干成,反害我把好端端的文件移除掉。

Alt text
批量重命名无快捷键,依靠字母定位又会漂到“Remove Downloads”上面去

无论单文件重命名还是批量重命名,都已经到了要爆发革命的临界点。而本人又不好糊弄,不可能随便找一个第三方重命名工具就疏导我的不悦,最终,我还是重新设计了 macOS 文件重命名流程,以 Keyboard Maestro 一以贯之,一次性解决单文件和多文件。

Keyboard Maestro 动作下载(包含纯 Keyboard Maestro 版和 LaunchBar 组合版)

一以贯之

任何操作大体上都可以分为两部分,其一是启用方式,其二是具体功能。就重命名来说,系统原生单文件重命名的启用方式与功能均不理想;而批量重命名的具体功能较为完善,只是启用方式不理想,Keyboard Maestro 不再另造轮子,仅仅统一快捷键(⌘Command-R)。

如下两图所示,在我设计的重命名方案中,无论试图处理多少文件,都只需要按下快捷键 ⌘Command-R——顶替鸡肋的原生功能,但如果你确实需要,换作其他键位便是——如选中一个文件,则弹出修改名字的小窗口;若有多个文件,则弹出系统自带的批量重命名窗口。

Alt text
选中单个文件,弹出修改名字的小窗口
Alt text
选中多个文件,弹出批量重命名窗口

故本文方案的第一步,乃是判断当前仅需重命名一个文件,还是要批量处理。传统思路当然是计算所选文件的数量,但此际,我更喜欢 Keyboard Maestro Token 仓库中的 %FinderSelection%。此 Token 表示当前所选中的文件,但是只能显示一个文件,托选中多个,则此 Token 会直接落空——此机制类似公道杯——是故只需考察 %FinderSelection% 是否为空,就知道当前所选文件是寡是众。

Alt text
Keyboard Maestro 步骤

之后,根据文件多寡,再分而处之。

注:在其他场合下,如果你确实需要处理多个文件,可用 %FinderSelections% 获之。

单文件重命名

若不借助任何第三方工具,Finder 甚至连单文件重命名尚且处理不好,令人不满。我曾在《如何体面地重命名桌面文件》一文中提出过初步方案,用 AppleScript 编写了自制输入框,远比桌面或其他图标视图下的重命名文本框舒服。

Alt text
桌面文件名输入框和自制输入框

你大可沿用前文思路,但既然计划以 Keyboard Maestro 同时解决单文件与多文件重命名两个问题,本文将完全换用 Keyboard Maestro,尽可能使用 Keyboard Maestro 自带零件。Keyboard Maestro 自带了 Prompt for Snippet 模块,可提供一个弹出窗口;若再预先填入 %Ask1=%FinderSelection%%,则可以进一步嵌入一个单行文本输入框。其中所得,需交予自定义变量以备 Move or Rename File 模块采用——惟需注意,刚刚输入的新文件名末尾有换行符,在套用你所输入的内容前,需借 Get Substring of Variable 模块或其他方式将去删去。

Alt text
选中单个文件,弹出修改名字的小窗口

若读者有 LaunchBar,从实用角度考虑,也不妨迳行调用 LaunchBar 的重命名界面,具体可参考拙作《快马加鞭,用快捷键加速 LaunchBar 的常用功能》

Alt text
Keyboard Maestro 配合 LaunchBar 的步骤
注:在已有通用的 AppleScript 代码时,再折腾 Keyboard Maestro 确实不经济,但本文也面向不会或不愿掌握 AppleScript 的读者,且希望能够顺带拂过一些 Keyboard Maestro 的重要设计思路。

多文件重命名

相较单文件重命名,批量重命名的功能反倒已然完善,我们只需通过 Select or Show a Menu Item 模块模拟点击菜单栏。Keyboard Maestro 的功劳,主要在于统一了操作方式,无论想命名多少文件,也只需要记住一个 ⌘Command-R

Alt text
选中多个文件,弹出批量重命名窗口

当然,正则表达式等进阶功能尚需另寻出路,暂时无法乞援原生重命名功能,具体内容可参考旧作《如何用 Shortcuts 和正则表达式批量重命名文件》,有志的读者不妨想想如何将其融入本文方案。

🛍 我撰写的付费栏目《Keyboard Maestro 进阶指引(增订版)》正在 UNTAG 售卖,详解 Keyboard Maestro Macro 高级设计思路,欢迎选购:付费内容链接

Keyboard Maestro 进阶指引
Keyboard Maestro 进阶指引

author_avatar

Lawyer, macOS/iOS Automation Amateur