# 快马加鞭，用快捷键加速 LaunchBar 的常用功能

> 本文公开全文。

原文：https://utgd.net/article/20250

在效率工具使用者中，也大有抱持着辉格史观——一切不断进步，马不停蹄——的人士，隐隐约约暗示着效率工具交互方式朝着“光明的未来”前进：先是低效的图形界面，尔后有人开始背诵快捷键，接着马上意识到快捷键根本不够用，于是有人开始折腾 Keyboard Maestro Palette（我也是其中一员），也有人另辟蹊径，考虑 LaunchBar 等启动器（Launcher）。

LaunchBar 等启动器固然是给快捷键解压的良药，但正如“解压”这个词所暗示的，快捷键并不会消失——相反，它会留给最高频的操作。而某个高频操作如果恰好在 LaunchBar 中，那就需要反向操作，考虑给 LaunchBar 项目（item）绑定快捷键。

## LaunchBar 为何也需要快捷键

LaunchBar 是一款启动器工具，为其绑定快捷键，难免惹来怀疑：用 LaunchBar 的初衷，恐怕就是为了避免记忆大量快捷键，转而通过字母、数字和符号快速过滤一切，如今又把快捷键绑上去，岂不是买椟还珠？

其实不然，快捷键之所以要减负，前提恰恰是快捷键有用且稀缺，而 LaunchBar 中的某些功能，凡举用得足够频繁，当然值得消耗快捷键键位资源。详言之，在各家自动化工具功能趋同的大背景下，交互界面反而会成为重点；有必要绑定快捷键的，往往是离不开 LaunchBar 之交互方式的功能，例如：

- 用 LaunchBar 的超大号输入框重命名文件名；

- 凭 LaunchBar 的搜索栏，查看 DEVONthink 或 Calibre 中的文献资料；

- 借 LaunchBar 的列表浏览各种信息，例如经常需要翻看的 Safari 书签或最近打开过的文件；

- ……

不难看出，上述场景，基本都是“Bar”这一交互界面的专长（对 Alfred 或其他启动器而言，也是如此）。易言之，若是原本就可以用 Keyboard Maestro 或 Shortcuts 完成的功能，则可不必假借 LaunchBar 之力——毕竟，LaunchBar 完全是干巴巴的代码脚本，哪里有前两款工具方便呢？这样想通，就不会陷入“我能故为之”的功能主义怪圈了。

## 如何为 LaunchBar 绑定快捷键

绑定快捷键者，快捷键只是触发机关（Trigger），关键在于，如何调用后续的 LaunchBar 功能。而 LaunchBar 又是一扎功能的集合，可以启动文件、网页、系统常用功能以及自动化动作，若不分而论之，则问题将如乱麻。实际上，只要明确各类功能的触发方法——或是快捷键，或是 AppleScript，或是只能经由缩写词（Abbreviation）——多数可以绑上快捷键。

思考的过程着实曲折，在此就不带读者重蹚一番浑水，仅指出主要思路：LaunchBar 中的项目有不同类别，包括：

- 自带快捷键的项目，例如文件重命名，此类可用模拟快捷键解决；

- 可以由 AppleScript 触发的动作（Actions）和服务（Services），最简单，写一段 AppleScript 脚本即可；

- 前两种方式均无的项目，例如 Safari 书签栏，这需要用自动化工具模拟键盘操作，即照常按下缩写词。

以下诸节，各讨论一种情形。严格来说，Keyboard Maestro 和 LaunchBar 的配合首先应当分为两大类，一类是直接触发 LaunchBar 项目，无多周折；另一类则要输入文件，此时就涉及输入输出。本部分前两节均属后者，其中的技术细节可供参考。

### 为 LaunchBar 原生快捷键绑定快捷键：以重命名文件为例

\>\>Keyboard Maestro Macro 下载\<\<

诸多 LaunchBar 项目中，首先让我意识到需要绑定快捷键的，就是文件重命名。我曾为 UNTAG 会员栏目 写过一篇豆腐块文章，指出 Finder 本身的文件重命名输入框过于逼仄，简直就像在学微雕；相应的，LaunchBar 的重命名窗口则非常宽敞，一旦用过，就会感叹由奢返俭难。

LaunchBar 显然也意识到重命名操作之频繁，原生为其设置了快捷键 ⇧Shift\-⌘Command\-R，不过，在此之前需要先双击 ⌘Command 键就文件发送（Send）到 LaunchBar，多了一个环节。这不是念叨几遍“肌肉记忆”就能含糊过去的事儿，相反，完全可以把 LaunchBar 的文件吗重命名功能独立出去，在 Finder 中直接启用。

模拟快捷键本身对于 Keyboard Maestro 而言是一碟小菜，但是，重命名的情况稍稍复杂一点，还需要先确定重命名的对象，这一步首先要用 Keyboard Maestro 的 %FinderSelection% token 获取当前所选文件，再配合 AppleScript 脚本将所获文件传给 LaunchBar。

### 为自动化动作绑定快捷键：以压缩图片为例

\>\>框架动作下载（需自行配置具体参数）\<\<

第二类 LaunchBar 项目由 AppleScript 触发，主要包括 LaunchBar 提供的动作、用户自定义动作以及系统服务。LaunchBar 对前两者一视同仁，最后一者的 AppleScript 语法则稍有不同，可见诸 LaunchBar 的 AppleScript 词典。

若不涉及文件输入，则可以跳到下一步；反之，则需要确保已在动作编辑器（Action Editor）中为目标项目勾选“Accepts string argument”。盖通过 AppleScript 运行动作时，输入的实际上是文件路径，其本质为字符串（String），是故需要手动勾选这一输入类型。

下图中，您想使用的 LaunchBar 动作 部分即需要触发的动作名，我有一段时间经常需要压缩图片，于是为“Image Compressor”这一自定义动作绑定了快捷键，免去反复手动发送文件到 LaunchBar。

### 为几乎任何项目绑定快捷键：以 Safari 书签为例

\>\>框架动作下载（需自行配置具体参数）\<\<

最后一种触发方式，也是兜底方法，即全盘复制通常触发 LaunchBar 项目的步骤：先呼出 LaunchBar，然后逐个输入缩写词。惟需注意，Keyboard Maestro 无法模拟按下两次 ⌘Command 键，所幸 LaunchBar 本身也是一个软件（Application），只需用 AppleScript 召唤之，即可呼出 LaunchBar 窗口，紧接着就可以输入缩写词。

例言之，如果想通过快捷键查看 Safari 书签，就可以先确定缩写词，再模拟按下这一串按键。至于浏览 Safari 历史记录或标签栏，也可如法炮制。

为确保不撞车、不触发其他名称类似的动作，可以预先为 LaunchBar 项目设置缩写词。最保险的做法当然是完整输入项目的完整名字，但这可能带来显著的延迟，一般而言，输入主要的辅音字母即可——当然，正式使用前请测试几次，以排查风险。

## 小结

苟言学习成本，故事大抵是线性前进的，这或许也是不少人——很可能是多数人——的实际学习经历，但它并不符合工具本身的发展历史和逻辑。

工具发展的故事，往往出乎辉格史观者的意料。工具发展史并非后浪拍死前浪的斗争史，有的只是不断适应新任务环境，而掌握工具本身，绝非效率游戏的主线任务。快捷键也好，启动器也罢，图形界面也无妨，都是容器中的内容物，它们的形状，反映了任务环境的形状，我们最终要面对的也是任务，而不是工具本身。

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

---

[前往标准阅读页](https://utgd.net/article/20250?audience=web)
