假设我正在编写文本编辑器并希望迭代变量:
i++
现在,让我们说无论出于何种原因,这种语言不是++
而是:
i = i + 1
当你习惯了第一种语法时,这很烦人。我想要一个脚本,当接收到++
时,将其转换为我发送的一系列命令(控制左移箭头等,这不是我遇到麻烦的部分)。
但是我似乎无法执行此方法:
+ & +::
Msgbox test
return
无论出于何种原因,这都没有被完全调用 - 我没有看到键入时+
的键击因此我知道它以某种方式进入该方法,但是,没有注册第二个{{1} }。
如何使用按键+
作为触发器来调用方法?
答案 0 :(得分:0)
有一个名为RegEx Powered Dynamic Hotstrings的非常棒的图书馆。并将someVar++
替换为someVar = someVar + 1
reeks 的RegEx!
这一行会做你想要的:
hotstrings("(\w+)\+\+", "%$1% = %$1% {+} 1")
这适用于每个字母数字(加上下划线)的变量名称:[a-zA-Z0-9_]
当然,这不适用于所有语言,因为它在很大程度上取决于语法。例如,某些语言使用:=
来分配表达式,其他语言需要使用分号来完成语句等等...
答案 1 :(得分:0)
Hotstrings将适用于这种场合,但是,您可能需要“?”即使在一个“单词”中也可以抓住它的修饰符,试试这样:
:*?:++::
ClipboardOld := ClipboardAll,Clipboard := ""
Send, +^{Left}^c
Clipwait
Send, ^{Right} = %Clipboard% {+} 1
Clipboard := ClipboardOld,ClipboardOld := ""
return
这也保留了剪贴板。