0

假设我在文本编辑器中编程并想要迭代一个变量:

i++

现在,无论出于何种原因,我们都说这种语言不是++,而是:

i = i + 1

当您习惯第一种语法时,这很烦人。我想要一个脚本,在接收时将其++转换为我发送的一系列命令(控制左移箭头等,这不是我遇到问题的部分)。

但是我似乎无法执行此方法:

+ & +::

Msgbox test
return

不管出于什么原因,这并没有被完全调用——我+在打字时看不到击键,所以我知道它以某种方式进入了那个方法,但是,没有注册第二个+

如何使用击键++作为触发器调用方法?

4

2 回答 2

0

有一个非常棒的库,叫做RegEx Powered Dynamic Hotstrings。并用someVar++正则表达式的someVar = someVar + 1 味道代替!

这一行将做你想做的事:

hotstrings("(\w+)\+\+", "%$1% = %$1% {+} 1")

这适用于每个字母数字(加下划线)的变量名称:[a-zA-Z0-9_]

当然,这不适用于每种语言,因为它在很大程度上取决于语法。例如,某些语言用于:=分配表达式,其他语言需要分号来完成语句等等......

于 2013-09-06T21:26:52.083 回答
0

Hotstrings 将适用于这种情况,但是,您可能需要“?” 修饰符让它即使在“单词”中也可以这样尝试:

:*?:++::
    ClipboardOld := ClipboardAll,Clipboard := ""
    Send, +^{Left}^c
    Clipwait
    Send, ^{Right} = %Clipboard% {+} 1
    Clipboard := ClipboardOld,ClipboardOld := ""
return

这也保留了剪贴板。

于 2013-09-06T22:37:49.807 回答