# Keyboard Maestro 脚本的多种触发方式

> 本文公开全文。

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

编注：本文由读者 @alexzzc 投稿，介绍了 macOS 自动化工具 Keyboard Maestro 的多种使用案例。

Keyboard Maestro（后文简称“KM”）脚本最常用的触发方式应该是为其分配快捷键，此外为了应对常用快捷键的冲突，还提供了“Palette Trigger”的方式，此处不多赘述。对于其他触发方式的探索，尤其是满足条件时的自动触发，一直以来是我更感兴趣的，下面通过一些个人案例，阐述下多种触发方式的拓展应用。

## 1\. Typed String Trigger

相信很多人发现了这种触发方式的潜力，其中于我最常用的，应该是微信表情符号的自动上屏。

在聊天中，如果可以方便地应用表情符号，可以让我们所传达的信息更加丰富，窥探语言背后的真实情绪。该 Macro 通过输入预先设定的输入短语，可以让 KM 将其替换为微信可识别的表情符号匹配符，比如“\[偷笑\]”，即可无需点击、选择自动生成表情符号。

另一个使用案例可能更加 tricky 一点，但我非常喜欢。

我的需求是这样的：在使用 Alfred 命令台的过程中，如果我想进行特定检索，需要先输入前缀词，比如“bd”代表从百度中检索内容，“zh”代表从知乎中检索。在输入前缀词以及空格后，再输入需要检索的内容，比如“zh 一加一等于几”。

在这个过程中，我发现前缀词全部是英文，而我的检索内容几乎全部是中文。由此带来的问题是，在输入前缀词后，我需要从英文输入法切换为中文输入法输入检索内容。能否通过自动化的脚本切换输入法呢？

做法是这样的，很简单：当我输入“bd ”、“zh ”后（输入内容包含空格），Typed String Trigger 就会生效，帮助我切换输入法。当然，在我正常输入中，不会误触发此 Macro，也即不会使用被此 Macro 占用的符号组合，这一点非常重要。

注意，如果使用此 Macro，需要取消勾选“Simulate 3 deletes before executing”。

顺便一提，Alfred 可以自定义唤出指令台后的输入法，比如每次唤出都自动切换为英文输入。

这样一次简单的检索，输入法往往从中文→英文→中文，而这一切都是自然发生的。

## 2\. 文件监控，当满足条件时触发 Macro

有时在工作中，我会有处理一些制式文件的需求，这些文件的格式都是一样的，所需的操作步骤也是一样的，而且文件名中都带有相同的元素。通过按键模拟，我可以实现让 KM 操控 WPS，对文件先做一部分基础处理动作（Excel 里的 Power Query 模块可以执行制式处理，明显更高级，可以处理的数据量更大，但是 Mac 只能采用土味方式了……），但是如何方便的触发该脚本呢？

Hazel 应用可以监控文件夹，找到符合条件的文件，并且支持 Apple Script 语句。所以我们可以让 Hazel 帮我们找到所需处理的文件，然后通过 Apple Script 与 KM 连接，从而触发 Macro。

实际方案如下：

在 Hazel 中，创建文件监控与指令规则。在以下图片中，代表的一系列操作是：

- 监控“Downloads”文件目录

- 当该目录中出现以“员工离职统计”字样为开头的文件时

- 将其移入“员工离职统计”文件夹

- 打开该文件

- 执行 Apple Script 语句

具体的语句是这样的：

- 停顿三秒

- 按下 Command\-Option\-Control\-Y

Command\-Option\-Control\-Y 正是 KM 相关 Macro 的触发条件（这样占用了一个可有可无的快捷键，或许有更好的语句，但我觉得已经可以了）。

这样，当按下下载键的时候，如同多米诺骨牌一样，最终 Macro 会被触发，可以替我完成比如排序、增加删除整行或整列、筛选、替换、编号、套用 VLOOKUP 公式、高亮，甚至数据对比、根据数据处理结果自动发送邮件、生成提醒事项等等操作。

## 3\. 快捷键增强

对于系统或者应用的一些内置快捷键，我们可以利用 KM 进行增强，为我们提供更多便利。

比如，我经常使用 Siri 创建提醒事项，因为 Siri 支持自然语言输入，而且被识别为提醒事项的选项，加上 Siri 和提醒事项在 Apple 全生态中的同步，所以 Siri 和提醒事项是我最有力的 GTD 日程管理工具组合。

在上图中可以看到，我输入自然语言后，提醒事项识别了语言中的日期和时间，这是非常快捷方便的。

那 KM 可以做什么呢？

因为，在我给 Siri 自然语言中，必须包含“提醒我”三个字，如果没有，结果指令就给到了日程应用，而不是提醒事项。日程和提醒事项是类似的两个应用，但我只使用提醒事项。

所以，我的重复劳动就是每次创建日程都要多打三个字，不多，只是多敲十下键盘。但鉴于截止今年我已经创建并完成了 1300 多项日程，其中三分之一都是从 Mac 端输入的，我还是决定改变这个现状。（总体大概等于敲 4000 下键盘。）

为了实现，只需要将 Macro 的触发快捷键与 Siri 的启动台快捷键设定为同一按键组合，设定延迟，预设“提醒我”文字即可。

## 4\. 使用 Alfred 检索 Macro

随着 Macro 使用的深入，即使有部分 Macro 可以随场景实现自动化，但是众多的 Macro 仍然面临如何快速启动的难题。

对于使用频率高的 Macro，固然可以分配快捷键，但因为有些 Macro 使用频率不高、好用的快捷键有限、快捷键过多导致记忆压力大等因素，必须采用其他方式。其中，大多数人可能偏好 Palette 快捷键冲突调色板来解决，但是我践行的是“全键盘操控”理念，即尽可能避免使用鼠标，所以虽然重度使用了 KM，却从未使用过 Palette。

据我感知，全键盘理念的优势如下：

- 右手在键盘和鼠标间切换，来回移动降低操作效率。

- 鼠标操作难易形成肌肉记忆，需要消耗一点点的注意力将鼠标指针移动到所需的位置，积少成多消耗精力。

- 使用鼠标右臂容易劳损。

那如何使用键盘启动众多 Macro 呢？

Alfred 有个插件，可以解决这个问题。（另一款非常棒的应用 Raycast 也有类似插件，我一直是 Alfred 和 Raycast 双启动台。）

通过为 KM 分配前缀词，可以检索 Macro 并回车启动，常用的 Macro 排列在上方。配合上文提到的启动台自动切换输入法的 Macro，这种方式更加灵活好用。

## 结语

或许你看了我的案例觉得一无所得，因为这是针对我个人工作流所做的配置。KM 是极复杂的工具，为了让它为你服务，首先需要你有着优化的意愿以及兴趣。其次，需要对它乃至更多的工具有着足够的了解，知道它有哪些功能。最后，还需要你在工作和生活中善于发现需求，找出重复劳动之所在。

更多的兴趣爱好带来更高水平的快乐；更好的工具方法解放人的时间、精力。所以我们需要积极探索、寻觅契机，给予新事物充分的容错空间。

---

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