快捷指令很强大,也很拉胯

在这个帖子里解决了和快捷指令数据互通的问题(通过 x-callback-url 和系统剪贴板)

但是又遇到了非常讨厌的快捷指令窗口无法运行后自动隐藏的问题

~~https://discussionschinese.apple.com/thread/254400120~~

Apple 支持的在线客服完全不了解快捷指令,只是让重启和以安全模式运行,检查完之后还是老样子,暂时确定了这应该是快捷指令本身的问题。

快捷指令里的 AppleScript 貌似也是失效的:

on run
	tell application id "org.gnu.Emacs" to show
	tell application id "com.apple.shortcuts" to quit
end run

问题已解决:

展示下 Emacs + 快捷指令结合的效果:

唯一的不足就是快捷指令不能自动隐藏,每次调用之后都要手动点击一下 Emacs 程序窗口获得焦点。

迂回处理下,用 apple script 弄个恢复焦点的功能绑个快捷键,起码可以不动鼠标。我这用的是 alfred 的 workflow 。

on alfred_script(q)
  tell application "Emacs" to activate
end alfred_script

你这么一说我好像知道问题出在哪儿了,我用自己写的 Alfred Workflow 查到的 emacs-mac 的bundle id 居然是 MACS 不是 org.gnu.Emacs

这是我之前的设置

on run
	tell application id "org.gnu.Emacs" to activate
	-- tell application id "com.apple.shortcuts" to quit
end run

稍等我直接用 App 名试一下。

2022-11-22 23:50:35 +0800

on run
	tell application "Emacs" to activate
	-- tell application id "com.apple.shortcuts" to quit
end run

还是不行,应该就是快捷指令的问题。

2022-11-23 00:01:19 +0800

AppleScript 也不行,快捷指令动作“隐藏app-快捷指令”也不行、“退出app-快捷指令”也不行,可把我恶心坏了。

2022-11-23 00:09:03 +0800

快捷指令,我是真的服气。

on run
	tell application "System Events" to keystroke "H" using {command down}
        -- tell application "System Events" to key code 4 using command down
end run

问题解决了,快捷指令里的一个多余的动作(类似编程中的断点)影响到了后面 AppleScript 的运行,删掉后能如期表现了。

使用须知

  • 快捷指令不能在后台静默执行,有时会有临时窗口跳出来,强迫症慎用。

  • 不能在短时间内大量调用(比如三分钟内 30 次),会导致快捷指令拒绝执行。

1 个赞