AutoHotkey hotstrings在eclipse中无法正常工作

时间:2011-03-13 19:40:50

标签: eclipse autohotkey

我将AutoHotkey用于我经常使用的各种文本,因此在签名或经常使用的邮件文本中,我还存储了一些代码片段以便快速使用。

其中一些热字串在wordpad或ultraedit等编辑器中运行良好,但在eclipse(我的版本是3.6.1)中,它们没有正确删除热字符串。

很简单的例子:

  • 我输入#echo
  • 我收到了一个变量提示
  • 我提供字符串$ myVar
  • 该字符串将插入当前文件

如上所述,这在许多编辑器中都能很好地工作,但不会在eclipse中工作,而在eclipse中,部分热点 - 例如#ec - 保留在输出前面,hotstring不会被完全删除。奇怪的是,有时它会留下1个字母,有时是3个字母,没有任何明显的逻辑。

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

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

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

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

我不知道日食问题的原因是什么,任何提示都会受到赞赏。

2 个答案:

答案 0 :(得分: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。

这有点像hacky,你可能需要根据你的使用方式将'{Left 2}'中的数字更改为其他内容,但这对我来说也很合适。

答案 1 :(得分:0)

为什么坚持热弦? 您可以使用奇怪的热键(例如 Alt + Windows + V

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