Autohotkey:替换组合键(但超时)
Autohotkey: replace key combination (but with timeout)
当我输入时,我希望我的脚本替换:
"ab" to "x"
"ac" to "y"
"a[more than 300ms]b" - don't replace, just leave "ab"
因此,仅当“a”和“b”/“c”之间的时间小于 300 毫秒时才应替换
尝试这样做:
a & b :: Send x
a & c :: Send y
但显然'forgive'我没有任何延迟
最好能得到任何提示,谢谢!
A hotstring 通常适合替换。为了增加延迟,我可以想出一个简单的方法:
~*a::APressTime := A_TickCount
:*B0:ab::
if(A_TickCount - APressTime <= 300)
SendInput, % "{BS 2}x"
return
首先是 A 的简单热键,它只用 A_TickCount
.
保存当前系统时间
然后 hotstring 我设置了一些您可能会想要使用的选项:
*
so you don't need to type an ending character.
B0
所以它不会自动退格字母 ab
。
您可能还想使用 ?
选项,这样热字串也可以在“单词内部”工作。如果需要,请添加它。
然后我们将当前系统时间与最后一次按下 a 的时间进行比较。如果为 300 毫秒或更短,请发送退格键两次,然后发送 x
。
({BS 2}
与 {Backspace 2}
或 {Backspace}{Backspace}
相同)
要对 ac
执行相同操作,只需再次复制粘贴热字串并将 b
切换为 c
,将 x
切换为 y
。
或者,这里有一些更有趣的东西,可以将它们放在带有三元的相同热字串标签中:
:*B0:ab::
:*B0:ac::
if(A_TickCount - APressTime <= 300)
SendInput, % "{BS 2}" (SubStr(A_ThisHotkey, 0) = "b" ? "x" : "y")
return
当我输入时,我希望我的脚本替换:
"ab" to "x"
"ac" to "y"
"a[more than 300ms]b" - don't replace, just leave "ab"
因此,仅当“a”和“b”/“c”之间的时间小于 300 毫秒时才应替换
尝试这样做:
a & b :: Send x
a & c :: Send y
但显然'forgive'我没有任何延迟
最好能得到任何提示,谢谢!
A hotstring 通常适合替换。为了增加延迟,我可以想出一个简单的方法:
~*a::APressTime := A_TickCount
:*B0:ab::
if(A_TickCount - APressTime <= 300)
SendInput, % "{BS 2}x"
return
首先是 A 的简单热键,它只用 A_TickCount
.
然后 hotstring 我设置了一些您可能会想要使用的选项:
*
so you don't need to type an ending character.
B0
所以它不会自动退格字母 ab
。
您可能还想使用 ?
选项,这样热字串也可以在“单词内部”工作。如果需要,请添加它。
然后我们将当前系统时间与最后一次按下 a 的时间进行比较。如果为 300 毫秒或更短,请发送退格键两次,然后发送 x
。
({BS 2}
与 {Backspace 2}
或 {Backspace}{Backspace}
相同)
要对 ac
执行相同操作,只需再次复制粘贴热字串并将 b
切换为 c
,将 x
切换为 y
。
或者,这里有一些更有趣的东西,可以将它们放在带有三元的相同热字串标签中:
:*B0:ab::
:*B0:ac::
if(A_TickCount - APressTime <= 300)
SendInput, % "{BS 2}" (SubStr(A_ThisHotkey, 0) = "b" ? "x" : "y")
return