Applescript 以独立于输入源的方式击键

Applescript keystrokes in a Input Source independent way

我想编写一个 Applescript,在其他击键之间进行多次复制和粘贴。所以这是我所做的示例:

tell application "System Events"
    set the clipboard to "^"
    keystroke "v" using command down
    keystroke "a"
    set the clipboard to "~"
    keystroke "v" using command down
    keystroke "a"
end tell

当 运行 使用 osascript 上述脚本时,我希望输入 ^a~a,但我得到的是 ~a~a。看起来击键是在所有 "set the clipboard" 指令之后执行的。

如何在同一个脚本中包含一系列复制和粘贴指令?

编辑: 我这样做的主要原因是能够以独立于输入源启用的方式自动键入字符。所以我会用 U.S 得到预期的字符序列。或者使用其他一些输入源,如果我们只是按顺序输入上面的四个符号,否则会导致 âã。在重音字符后添加空格适用于这种输入源,但会给我 ^ a~ a 和 U.S,所以这不是我正在寻找的通用解决方案。

添加延迟可以解决问题。在下面的脚本中,它输入 TextEdit :

tell application "TextEdit" to activate
tell application "System Events"
set the clipboard to "^"
keystroke "v" using command down
keystroke "a"
delay 0.05
set the clipboard to "~"
keystroke "v" using command down
keystroke "a"
end tell

我假设您有充分的理由(此处未解释)不只是这样做:

tell application "System Events" to keystroke "^ a~ a"