必须在脚本首行添加#Requires AutoHotkey v2.0,安装ahk-plus-plus插件并重启VSCode,确保右下角语言模式显示“AutoHotkey”,文件后缀为.ahk且无隐藏扩展名,三者缺一不可。

VSCode 要能运行 AHK 脚本并显示正确语法高亮,必须装对插件、设对语言模式、且文件后缀和首行声明要匹配 v2 规范——少一个环节,MsgBox 就变纯文本,For 循环也不标红报错。
怎么让 VSCode 识别 .ahk 文件为 AutoHotkey v2 语言
VSCode 不会自动把 .ahk 文件当 AHK 处理,哪怕你装了插件。关键看右下角状态栏是否显示 AutoHotkey(不是 Plain Text 或 AutoHotkey v1):
- 新建文件后手动点击右下角语言模式 → 选择 AutoHotkey(部分插件叫
AutoHotkey v2) - 更可靠的做法:在脚本第一行加
#Requires AutoHotkey v2.0,保存后 VSCode 通常会自动切换语言模式 - 如果始终识别失败,检查是否装了冲突插件(比如旧版
AutoHotkey Language Support),只保留ahk-plus-plus - 文件名不能是
test.ahk.txt或带隐藏扩展名,Windows 资源管理器需开启“显示文件扩展名”确认
哪些插件真正提供语法高亮和基础补全
只有 ahk-plus-plus(作者 Mark Wiemer)能稳定支持 v2 的完整语法高亮、函数参数提示、#Requires 校验和错误波浪线。其他名字相似的插件(如 AutoHotkey v2 Language Support)在 2026 年多数已停止维护或不兼容最新 v2.0.16+:
- 安装时搜索全名:
ahk-plus-plus,ID 是markwieder.ahk-plus-plus - 装完重启 VSCode,打开任意
.ahk文件,输入StrSplit(应立刻弹出参数提示 -
StringUpper拼错成StringUppper会被标红;但MsgBox后面漏括号不会报错——这是 v2 解释器本身特性,插件无法覆盖 - 不依赖
vscode-autohotkey-debug插件来实现高亮,它只管调试,不负责语法识别
为什么 F5 运行脚本没反应或报错 spawn ENOENT
常见现象是按 F5 后无任何输出,或弹窗报错 spawn AutoHotkey.exe ENOENT。根本原因是 VSCode 找不到可执行的 v2 解释器:
- 确认系统已安装 AutoHotkey v2(官网下载,非 v1,非便携版未解压)
- 用 PowerShell 运行:
Get-Command AutoHotkey.exe | Select-Object -ExpandProperty Path,输出路径应含AutoHotkey 2 - 若路径含空格(如
C:Program FilesAutoHotkey 2AutoHotkey.exe),必须在launch.json中用双引号包裹,且不能写成"${file}" - 别误用
Ahk2Exe.exe或Compiler.exe——它们是打包工具,不是运行时
运行脚本的两种轻量方式(不用调试配置)
如果你暂时不需要断点调试,只想快速执行脚本,推荐以下更直接的方法:
- 装
Code Runner插件,然后在 VSCode 设置中搜code-runner.executorMap,添加一行:"ahk": "C:\Program Files\AutoHotkey 2\AutoHotkey.exe "${file}""(路径按实际修改) - 或直接配快捷键:在
keybindings.json加条目:{"key": "ctrl+f5", "command": "code-runner.run", "when": "editorLangId == ahk"} - 命令行方式最稳:
AutoHotkey.exe C:path oscript.ahk,适合验证解释器是否真能工作 - 注意:用 Code Runner 运行时,
InputBox、MsgBox等 GUI 弹窗会阻塞,但不会导致崩溃
最容易被忽略的是:AHK v2 脚本里所有函数调用都必须带括号,MsgBox "hi" 在 v1 可行,在 v2 会静默失败——语法高亮不会报错,但运行时没反应。这种差异得靠 #Requires AutoHotkey v2.0 和真实执行来暴露,光看颜色不够。


















