简单的 AHK 脚本不起作用
Simple AHK script not working
我在 AHK 上阅读了很多页面,但没有找到任何解释如何制作一个脚本,使我能够在输入以下内容时替换 "for":
for(int i=0;i<CONDITION;i++)
{
}
我希望它将光标焦点设置在括号内,以便立即开始编写循环代码。
这是我到现在为止想到的:
::for::for(int i=0;i<CONDITION;i++),
{,
,
}
应将 "for" 替换为 post 顶部的代码,但出现以下错误:
Error at line 2.
linetext: ,,
Error: this line does not contain recognised action.
The program will exit.
执行多行的热键(或热字符串)必须在热键(或热字符串)下方列出其第一行。
https://autohotkey.com/docs/FAQ.htm#autoexec
逗号、分号和其他字符(例如 {}^!+#)在 AHK 中具有特殊含义,需要进行转义才能以不同于正常情况的方式进行解释。
https://autohotkey.com/docs/commands/_EscapeChar.htm
::for::for(int i=0`;i<CONDITION`;i`{+`}`{+`})`n`{`{`}`n`n`{`}`}{Up}
发送此类文本的最简单方法是:
; #If WinActive("ahk_class Notepad")
::for::
ClipSaved := ClipboardAll ; save clipboard
clipboard := "" ; empty clipboard
clipboard = ; send this text to the clipboard:
(
for(int i=0;i<CONDITION;i++)
{
}
)
ClipWait, 1 ; wait for the clipboard to contain data
Send, ^v
Send, {Up}
clipboard := ClipSaved ; restore original clipboard
return
; #If
这种方法也相当简单,在自动处理制表符的 Scite 和 Notepad++ 中运行良好:
::for::
SendRaw,
(
For(int i=0;i<CONDITION;i++)
{
}
)
Send, {Up}{End}
return
我在 AHK 上阅读了很多页面,但没有找到任何解释如何制作一个脚本,使我能够在输入以下内容时替换 "for":
for(int i=0;i<CONDITION;i++)
{
}
我希望它将光标焦点设置在括号内,以便立即开始编写循环代码。
这是我到现在为止想到的:
::for::for(int i=0;i<CONDITION;i++),
{,
,
}
应将 "for" 替换为 post 顶部的代码,但出现以下错误:
Error at line 2.
linetext: ,,
Error: this line does not contain recognised action.
The program will exit.
执行多行的热键(或热字符串)必须在热键(或热字符串)下方列出其第一行。 https://autohotkey.com/docs/FAQ.htm#autoexec
逗号、分号和其他字符(例如 {}^!+#)在 AHK 中具有特殊含义,需要进行转义才能以不同于正常情况的方式进行解释。 https://autohotkey.com/docs/commands/_EscapeChar.htm
::for::for(int i=0`;i<CONDITION`;i`{+`}`{+`})`n`{`{`}`n`n`{`}`}{Up}
发送此类文本的最简单方法是:
; #If WinActive("ahk_class Notepad")
::for::
ClipSaved := ClipboardAll ; save clipboard
clipboard := "" ; empty clipboard
clipboard = ; send this text to the clipboard:
(
for(int i=0;i<CONDITION;i++)
{
}
)
ClipWait, 1 ; wait for the clipboard to contain data
Send, ^v
Send, {Up}
clipboard := ClipSaved ; restore original clipboard
return
; #If
这种方法也相当简单,在自动处理制表符的 Scite 和 Notepad++ 中运行良好:
::for::
SendRaw,
(
For(int i=0;i<CONDITION;i++)
{
}
)
Send, {Up}{End}
return