有两种迥异的软件设计风格,一种是如此简单以至于明显没有问题,另一种是如此复杂以至于没有明显的问题。当你看到 Microsoft 系列软件那比抬头纹还糟糕的顶部菜单栏时,你就知道,它们毫无疑问属于后者。
这些按钮的位置如此复杂且没有逻辑,相当一部分甚至未列入 macOS 原生菜单栏而无法通过快捷键之王触及,以至于即便只是想在修订模式下简单调整显示选项,也会手忙脚乱。归根结底,问题出在修订模式下常用的——起码是我常用的——几个显示设置,并未放在一处,而是散落于本就没有逻辑的菜单各处。有过批注工具箱的经验之后,我很快尝试用 Keyboard Maestro Palette 机制打造一个悬浮工具菜单,汇聚我最需要的显示方式设置项(你当然可以随意删改)。事情并不像过去那么简单,除了需要硬啃古老的 AppleScript 字典之外,我还需要设计带开关标记的新菜单,遂有本文。
Keyboard Maestro 示例动作组下载
思路简述:用 Mark 机制优化开关
不同于执行一次即结束的批注操作,关于显示方式的设置会长期生效,直到你再次修改。这些设置还不少,例如,修订合同时,一般在最终提交前都不需要显示格式变化,以便聚焦于内容;有些客户习惯在文中高亮一部分内容(通常意味着“我想不好但我觉得这里要改”),在首轮针对性的修订中,这类记号也不必显示……如此种种,不仅浪费时间,还总要让人停下来想一想,现在相关设置是开启还是关闭?最糟糕的情况是,关闭后忘记重启,结果漏掉大把的待修订内容(读者中大概有因为 Microsoft 和 WSP 兼容不足而吃过苦头的)。
因此,我不仅希望汇集常用显示设置,还希望 Palette 中能有某种指示机制,提示我当前是开启或关闭了某项设置,就像家用电器上的开关一样。我倒是知道更复杂的方式,但都不如这个简单漂亮:Mark 机制。所谓 Mark,就是在 Keyboard Maestro 动作的图标上面打一个钩,看似毫无锋芒,直到你得知这一微妙变化可以显示在 Palette 中——顷刻间,你得到了一个简单有效的开关状态指示器。
一旦确定 Mark 机制后,剩下的工作,就是组装 Keyboard Maestro 动作并合理调整动作组设置。
Keyboard Maestro 动作设置
既然是各项显示方式的开关,那么,理想目标应当是集开与关为一体,而非为两步各设计一个动作。我在《Keyboard Maestro 中的“开关”》已介绍过相关思路,此处直接给出设计成果:获取当前的显示方式,如果是“关”(例如,格式修订是 false),就将其调整为“开”(设置为 true),反之则为关。同时,如果执行了“开”操作,就标记(Mark)当前动作,表示相关显示设置已打开;反之,则取消标记,意味着当前设置已关闭。
(获取与设置显示方式均利用 AppleScript,但本文无意翻译 Microsoft Word 古老而晦涩的 AppleScript 字典条目。)
我可以没有为这些动作设置触发方式(Trigger),因为正如下一节将要介绍的,我们将使用悬浮式
