






在 macOS 自动化领域,Keyboard Maestro (KM) 不仅仅是一个快捷键工具,它更像是一个拥有图形化界面的脚本运行时。对于开发者而言,掌握其变量(Variables)的逻辑,等同于掌握了程序的“状态管理”。
在 KM 中,变量不需要预先声明类型(类似于 Python 或 JavaScript)。你可以通过以下几种方式创建变量:
1 + 2 或内置函数)。Execute Shell Script 或 JSON API)可以直接将输出保存到指定变量。KM 的变量名区分大小写,且支持使用空格。但作为程序员,建议遵循 PascalCase 或 snake_case,并利用 双下划线 (__) 来实现作用域控制。
这是 KM 最具特色的地方。它没有显式的 public/private 关键字,而是通过命名前缀约定来区分作用域。
UserEmail)。Local__ 开头(注意是两个下划线)。Instance__ 开头。Execute Macro 动作调用宏 B 时,它们共享同一个 Instance 变量。这在构建“子程序/函数”时非常有用。使用 Token 语法引用变量:
%Variable%YourVariableName%KM 将变量映射为环境变量,方便外部脚本调用:
echo $KMVAR_Local__MyData
tell application "Keyboard Maestro Engine"
set myValue to getvariable "Local__MyData"
end tell
const km = Application("Keyboard Maestro Engine");
let data = km.getvariable("Local__MyData");
作为程序员,你不能盲目运行宏。以下是观察变量状态的三种手段:
Local 和 Instance 变量的当前值。tail -f ~/Library/Logs/Keyboard\ Maestro/Engine.log,配合 Log 动作输出调试信息。Local__:除非你需要跨宏持久化数据,否则局部变量始终是首选,它能有效避免竞态条件。Instance__ 传递参数,让你的宏具备可重用的“函数化”特征。此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。