【问题标题】:AutoHotkey hotstrings don't work correctly in eclipseAutoHotkey 热字串在 Eclipse 中无法正常工作
【发布时间】:2018-02-19 04:13:51
【问题描述】:

我对各种我经常使用的文本都使用 AutoHotkey,所以在签名或经常使用的邮件文本中,我还会在其中存储一些代码 sn-ps 以便快速使用。

其中一些热字串在 wordpad 或 ultraedit 等编辑器中工作正常,但在 Eclipse(我的版本是 3.6.1)中,它们不能正确删除热字串。

非常简单的例子:

  • 我输入#echo
  • 我得到一个变量提示
  • 我提供字符串 $myVar
  • 字符串被插入到当前文件中

如前所述,这在许多编辑器中都可以正常工作,但在 Eclipse 中却不行,其中部分热字符串 - 例如#ec - 保留在输出的前面,热字串没有被完全删除。奇怪的是,有时它会留下 1 个字母,有时会留下 3 个字母,没有任何明显的逻辑。

在我的 AutoHotkey 文件 foo.ahk 我有一些这样的代码:

::#echo::
InputBox, VAR, User input, Please enter the variable VAR., , 320, 130
SendInput,
(
<?php echo(%VAR%); ?>
)
Return

作为 AutoHotkey 的新手,我之前遇到过一些其他问题,我可以解决,所以它们不应该是所描述问题的根源。

  • 带有特殊字符(如德语变音符号)的脚本必须以 UTF8 编码
  • 脚本或编译脚本必须以管理员身份运行

我不知道日食问题的原因可能是什么,感谢任何提示。

【问题讨论】:

    标签: eclipse autohotkey


    【解决方案1】:

    我自己刚刚尝试过,看到了同样的行为。对我来说,切换到 SendPlay 模式而不是 SendInput 固定可以让事情完美运行。

    添加行:

    #Hotstring SP
    

    就在您发布的代码之前,看看是否能解决问题。

    查看文档中的“#Hotstring”命令以获取更多信息,以及“Hotstrings and Auto-replace”的“选项”部分。

    更新

    好的,试试这个:

    #Hotstring B0
    
    ::#echo::
    SendInput, {Control Down}{Shift Down}{Left 2}{Control Up}{Shift Up}
    InputBox, VAR, User input, Please enter the variable VAR., , 320, 130
    SendInput,
    (
    <?php echo(%VAR%); ?>
    )
    Return
    

    '#Hotstring B0' 行将阻止 AutoHotkey 自己执行退格。第一个 SendInput 行将发送 Ctrl-Shift-Left 两次以选择键入的“#echo”文本,然后将其替换为 InputBox 之后的第二个 SendInput。

    这有点老套,您可能需要根据您的使用方式将“{Left 2}”中的数字更改为其他数字,但这对我来说也很好。

    【讨论】:

    • 谢谢,但它对我不起作用 :-( 仍然和以前一样。
    • 奇怪。我已经更新了我的答案以包含另一种应该有效的方法。
    • 再次感谢......我喜欢这个想法,虽然它很hacky并且在记事本中它不会像在eclipse或ultraedit中那样工作,因为使用Ctrl-Shift进行跳转选择的逻辑是不同的。但是日食一直在这方面失败。对于像 ultraedit 之类的其他程序,这可以正常工作。
    【解决方案2】:

    为什么要坚持使用热字符串? 您可以改用奇怪的热键(例如 Alt+Windows+V

    !#v::
    InputBox, VAR, User input, Please enter the variable VAR., , 320, 130
    SendInput,
    (
    <?php echo(%VAR%); ?>
    )
    Return
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2012-01-02
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      相关资源
      最近更新 更多