与两行代码的冲突使得代码无法按照我的意思工作(?)

Collision with two lines of code makes code does not work the way it is meant by me(?)

自己尝试运行下面的代码,你会注意到“/hello”变成了“/HELLO”,但我想让它变成"hi"。另一方面,我想保留 1.st 行代码,它将 "hello" 更改为 "HELLO"。我怎样才能做到这一点(?)

这个代码问题和我上一个问题很相关:

我上一个问题的解决方案对那个问题很好,但对上面提到的新问题不起作用。

::hello::HELLO
::/hello::hi

这很有趣。我真的希望它能通过从 EndChars 中删除 / 来工作。但是在观察了一段时间之后,它为什么会这样表现就很明显了。当您键入“/hello”时,它实际上匹配两个热字串,因此 AHK 选择定义的第一个。无论如何,我知道有两种解决方案:

  • 重新排序您的热字串。将 ::/hello::hi 置于另一个之上,您将始终获得所需的结果。此外,您不需要更改 EndChars,因为 / 是第一个字符。
  • 在第二个热字串上使用 asterisk option。这将使它立即更新,这可能是可取的,也可能不是可取的(我更喜欢它)。