当结束不需要的字符时,“prefix”字会触发中断我的autohotkey文本替换

时间:2009-06-29 21:41:08

标签: autohotkey

我正在尝试进行多次文本替换。一些替换触发缩写是其他触发缩写的前缀,如下所示:

:*:foo::the
:*:fooed::there

目前,这会产生:

foo = "the"
fooed = "theed"
“foo”,作为“fooed”的前缀,发射得太快了。通过删除“*”并要求结束字符可以很容易地解决这个问题。但是,这种方式具有我想保留的有价值的预测文本功能。

我可以看到这样做的方法是在输入“foo”后立即进行hotstring替换,但要在hotstring“clipboard”中保留“foo”。然后,当添加“ed”时,完整的剪贴板将被“fooed”,这将自动触发替换为“there”。使用结束字符(如空格或句点)后,剪贴板将重置。

任何人都可以帮助我使用AHK语法吗?

1 个答案:

答案 0 :(得分:0)

不确定它是否适合您,但您可以使用热键之类的热键...您可以尝试使用“KeyWait”命令或foo hotstring中的“Input”命令来检查下一个输入的字母是“e”。如果用户按下“e”,则使用“Return”跳过foo热键...如果按下任何其他键,则触发热字符串。这不是一个完美的想法,但它更接近,你可以在声明中添加你选择的任何错误处理。

“我可以看到这样做的方法是在输入”foo“后立即更换热字符串,但要在热字符串”剪贴板“中保留”foo“。然后,当添加”ed“时,完整剪贴板将被“fooed”,它会将替换自动触发到“there”。剪贴板将在使用空格或句点之类的结束字符后重置。“ - 看起来像太多的工作。剪贴板是一个变幻无常的项目,应该保留用于罕见的用途......更不用说像这样的东西需要额外的 - 非常烦人的 - 计算。