article_image

我其实不喜欢用 Emoji,最近几年写杂文,已经几乎不用(除了广告部分)。在部分浏览器中,我编写的脚注会被自动加上箭头 Emoji 符号,这至今仍然困扰着我。

不过,正所谓入乡随俗,工作中,如果同事或客户也在用,不妨礼尚往来。常言道,伸手不打笑脸人,只要你别用表示“呵呵”的那个微笑表情,大概率可以缓和沟通气氛。

也罢,macOS 不仅自带 Emoji 输入窗口,还预设了两组快捷键,其中一个竟是 fn-E,不知道是多爱发表情的设计师才能想出那么铺张浪费的键位设计。

——既然是不得已而用之,我其实没记住 fn-E 这个蹩脚的按钮和另一个不常用的键位(我真的想不起来是 ⌃Control-⌃Control-Space 还是 ⌃Control-⌘Command-Space,也不愿让表情符号输入占用常用键位。难受的事情最好只难受一次,我想在 macOS 下统一表情输入,在各处都采用 Rocket 式的触发方式:输入 :表情名称,即可展开表情窗口。包括 Slack 在内,不少软件都支持在检测到前述文本模式时弹出可选表情(不限于 Emoji)。

Alt text
Slack 中的表情输入语法

很快,我用 Keyboard Maestro 设计了一套类似的 Emoji 输入方案,贵在通用,交互设计不一定最合理,但我只需要记住一次。不同于 Slack 或 Rocket,为避免误触,我设计的触发方式是 :表情名称 加空格或回车等表示上屏的按键,这样在 Slack 中还可以保留原有的表情输入方式。

Alt text
模拟用语法触发表情输入

Keyboard Maestro 动作下载

本方案虽简单,却串联了 Keyboard Maestro 中的多个高级特性,可以作为动作设计练习。首先是触发方式,利用正则表达式以覆盖可能的交互,:[A-Za-z]+\s 表示先后键入冒号(不区分中英文)、表情的英文名(仅限英文,避免输入数值比值时误触发)和空格或回车。与 Slack 或 Rocket 的操作仅在于多了空格或回车,充当确认机制,避免轻易误触。

比起快捷键,文本输入模式(Typed String)作为触发机关(Trigger)更为有趣,它基本就是打字的自然延伸。硬要说的话,可以让你“手不离键盘主区域”,非常 Geek(尽管 Geek 与否不是我最在意的)。我在《用 Keyboard Maestro 把任何软件变成 Markdown 编辑器》《用 Keyboard Maestro 快速插入 Markdown 格式脚注》等文章中也介绍过文本输入模式机关,可供参阅。

Alt text
Keyboard Maestro 步骤

在这个简单的动作中,还用到了另一个高级特性:%TriggerValue% Token,这是一个 Keyboard Maestro 内置的变量,可以自动捕获触发动作的机关并将其传递给后续操作,在本例中,%TriggerValue% 就是你所按下的按键,再配合一个文本替换模块——再次用到了正则表达式——修剪前面的冒号和末尾的空白字符,就得到了刚刚输入的表情名称,Keyboard Maestro 会将其自动填入新展开的原生 Emoji 窗口,无缝衔接。

继续深挖,还可以看到本地变量 %localMinja%,考虑到本动作只是临时使用,故采用本地变量,避免干扰其他 Keyboard Maestro 动作。这又是一个值得注意的设计细节。

麻雀虽小,五脏俱全,一个私人小需求引发的小巧 Macro,也能串联一系列 Keyboard Maestro 高级特性。

Keyboard Maestro 进阶指引
Keyboard Maestro 进阶指引(增订版)

author_avatar

法律顾问,前律师, macOS/iOS 自动化业余玩家。有效即合法,无效的优雅有罪。