gpt4 book ai didi

keyboard - AutoHotKey:获取和弦以触发热弦

转载 作者:行者123 更新时间:2023-12-02 06:28:13 26 4
gpt4 key购买 nike

我使用了数千个 AHK 热字符串。例如(简化):

::btw::by the way

与大多数 AHK 用户不同,我允许的唯一结束键是 \。因此,当我输入 btw\ 时,我会得到顺便。空格或 Enter 或其他此类键不会触发热字串。这可以确保热字符串永远不会无意中触发。

现在,我也使用和弦。这是我的和弦的简化版本:

~t & g::
~g & t::
SendInput {Backspace}
SendInput {Space}the{Space}
Return

这些和弦的工作方式是,如果我将手指按在 tg 键之间的边界上,AHK 会键入 (前后各有一个空格。)非常有用。

现在,我想更进一步:我希望和弦能够自动触发热弦。例如,假设我想顺便输入。我可以输入 btw\,然后一起输入 tg。但是,如果我可以跳过反斜杠,而是让和弦自动启动热弦,那就更好了。 (当然,仅在和弦之前的文本是热弦的情况下。)

现在显然,我希望它不仅适用于 btwt+g 的特定组合,而且适用于任何组合来 self 大量收藏的热弦和和弦。

我该怎么做?

(我想到的一个想法是,AHK 可能有一个功能,每次按下结束键时它都会启动,该功能的作用是“查看用户到目前为止输入的文本。它是热字符串吗?” ?如果是这样,执行它。”如果我有办法从我的和弦脚本中调用该函数,那就可以解决我的问题。但是,我不知道该怎么做。)

最佳答案

你的问题让我很困扰,我一直在尝试,直到找到一个似乎效果很好的解决方案:

#HotString *B0
SendMode, Input

endChars := "`n `t"
interruptChars := chr(8) ; 8 is BACKSPACE
counter := 33
while(counter <= 126)
{
interruptChars .= chr(counter++)
}
Loop, Parse, endChars
{
Hotkey, *~%A_LoopField%, FinishHotstring
}
Loop, Parse, interruptChars
{
Hotkey, *~%A_LoopField%, InterruptHotString
}

; this is our pending hotstring replacement
pendingHS := ""
; this var will hold the number of BACKSPACEs needed
; to erase the input before replacing the hotstring
pendingBS := -1

Exit

::btw::
pendingHS := "by the way"
RegExMatch(A_ThisLabel, ":.*?:(.*)", abbr)
pendingBS := StrLen(abbr1)
return

::bt::
pendingHS := "Bluetooth"
RegExMatch(A_ThisLabel, ":.*?:(.*)", abbr)
pendingBS := StrLen(abbr1)
return

~t & g::
~g & t::
if(pendingHS) {
pendingBS++
Send % "{BACKSPACE " pendingBS "}" pendingHS " the "
pendingHS := ""
} else {
Send % "{BACKSPACE} the "
}
Return

FinishHotstring:
if(pendingHS) {
pendingBS++
Send, % "{BACKSPACE " pendingBS "}" pendingHS
pendingHS := ""
}
return

InterruptHotString:
if(pendingHS) {
pendingHS := ""
}
return

遗憾的是,这个解决方案与 AHK 的热字符串标准相差甚远。一开始,您必须定义自定义 endChars 以及自定义 interruptChars (它们告诉脚本您的热字符串实际上不是一个,因为它是立即触发)。我使用了 BACKSPACE 和 ASCII 字符 33 到 126。
其余部分是不言自明的:每个所谓的热字符串都已存储但尚未发送。如果触发 endCharchordinterruptChar,脚本要么发送常用的热字符串替换,要么添加和弦附录,或者不发送什么都不做。

请讨论!

关于keyboard - AutoHotKey:获取和弦以触发热弦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17087964/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com