macOS 无原生宏指令,但可通过终端描述文件键盘绑定(如F13发送git命令)、AppleScript封装跨应用操作,或快捷指令App分配全局快捷键实现类似功能。
macos 中没有原生“宏指令”概念,但你可以通过终端的描述文件键盘设置 + shell 命令或 applescript 封装,实现类似效果:按下某个功能键(如 f13、f19)直接执行一串命令、粘贴固定文本、甚至调起脚本完成多步操作。
用终端描述文件绑定功能键到命令或字符串
这是最轻量、无需第三方工具的方式,适合在 Terminal 内高频触发预设动作:
- 打开“终端”→顶部菜单“终端”>“设置”→选中当前使用的描述文件(如“基本”)→点“键盘”标签页
- 在“按键”列表中,滚动找到一个未被系统占用的功能键(推荐 F13–F19,它们默认无行为)
- 点击右侧“编辑”,或点“+”新建一项;在“键”中选目标键(如 F13),“修饰键”选“无”
- 在“操作”中选“发送文本”,然后在下方输入框里填你要执行的完整命令,例如:
git status && git fetch
或带换行的多行命令(用;或&&连接) - 点击“好”保存。下次在该描述文件的终端窗口中,按 F13 就会自动输入并执行这串命令
进阶:用 AppleScript 封装复杂逻辑再绑定
如果需要跨应用操作(比如切到 Safari 刷新页面、再切回终端)、弹窗提示、文件处理等,纯文本发送不够用,这时可封装为脚本:
- 新建一个 AppleScript 文件(用“脚本编辑器”App),内容例如:
tell application "Safari" to do JavaScript "location.reload()" in front document - 保存为 .scpt 文件(如
~/Scripts/reload-safari.scpt) - 回到终端“键盘”设置,新增按键(如 F14),操作选“运行命令”,输入:
osascript ~/Scripts/reload-safari.scpt - 确保脚本有执行权限:
chmod +x ~/Scripts/reload-safari.scpt(其实 .scpt 不需执行权限,但 osascript 调用路径必须正确)
注意事项与常见问题
这类配置只对当前描述文件生效,不影响其他终端窗口或外部应用:
- F1–F12 默认被 macOS 系统功能占用(亮度、音量等),如需启用,先去“系统设置”→“键盘”→“键盘快捷键”→“功能键”,勾选“将 F1、F2 等键用作标准功能键”
- 终端中发送的文本不会自动回车执行——除非你在文本末尾显式加上
\n(实际操作中,多数终端会在你发送后自动把光标移到行尾,按回车才执行;若想全自动,可用printf 'command\n' | sh包裹) - 若希望全局任意位置触发(不限于终端),就得转向 Automator 快速操作 + 系统服务快捷键,或 Karabiner-Elements 底层重映射
替代方案:用快捷指令 App 实现更灵活的“宏”
macOS 自带的“快捷指令”App 支持 Shell 脚本、AppleScript、应用控制、文件操作等,还能分配全局快捷键(需开启“允许快速操作在任何应用中使用”):
- 打开“快捷指令”→点“+”新建→命名(如“Git Status & Fetch”)
- 添加操作:“运行 Shell 脚本”,输入
cd "$(pwd)" && git status && git fetch,勾选“在后台运行” - 保存后,前往“系统设置”→“键盘”→“键盘快捷键”→“服务”→底部“快速操作”里找到它,分配快捷键(如 Cmd+Opt+G)
- 之后无论在哪,只要按下组合键,就会静默执行该流程


















