vscode本身不运行lua,真正执行代码的是本地安装的lua或luajit可执行文件;必须先安装lua解释器并配置path,否则f5、ctrl+alt+n或code runner均会报错或静默失败。

VSCode 本身不运行 Lua,真正执行代码的是你本地装的 lua 或 luajit 可执行文件。没这个文件,点 F5、按 Ctrl+Alt+N、甚至装了 Code Runner,全都会报错或静默失败。
确认系统已安装可用的 Lua 解释器
这是所有后续操作的前提,跳过这步,后面全是白忙活。
- 打开终端(macOS/Linux)或命令提示符(Windows),输入
lua -v—— 如果返回类似Lua 5.4.6就说明已装且在 PATH 中 - 如果提示“命令未找到”,就得先装:macOS 推荐
brew install lua@5.4 && brew link --force lua@5.4;Windows 推荐从luadist下载带完整lua.exe的包,解压后把路径(如C:\luadist\bin)加进系统环境变量 PATH - Windows 用户慎选 LuaJIT:它不兼容
lua-debug调试协议,调试时大概率卡在 “Debug adapter process has terminated unexpectedly”
用 Code Runner 快速运行单个 .lua 文件
适合写小工具、验证语法、跑测试脚本——不用配 launch.json,但也不支持断点、变量监视等调试功能。
- 安装扩展
Code Runner(作者:Jun Han),不是Ctrl+Alt+N那个旧版 - 确保
lua在 PATH 中,否则右上角 ▶️ 图标点击后无反应 - 若脚本依赖当前目录下的资源(如
config.json),需手动在 VSCode 设置中指定工作目录:"code-runner.executorMap": {"lua": "cd $dir && lua $fileName"}
配置 launch.json 启动调试会话(支持断点/变量/调用栈)
这才是真正开发游戏脚本或复杂逻辑时该用的方式。
- 必须装扩展
Lua Debug(作者:actboy168),别装 EmmyLua 或老版lua-debug.so手动放的方案 - 按
Ctrl+Shift+D→ 点左上角齿轮图标 → 选lua→ 自动生成.vscode/launch.json - 关键字段必须改对:
"type": "lua"(不能是luajit或空);"request": "launch"(不是attach,除非你连外部游戏进程);"program": "${file}"表示运行当前打开的文件 - 常见失败现象:“Breakpoint ignored because generated code not found”——大概率是
lua.runtime.path指向了目录而非可执行文件,或者lua.runtime.version没设对导致语言服务器解析失败
中文变量名能跑但不一定能调
标准 Lua 5.3+ 允许 UTF-8 标识符(比如 姓名 = "张三"),VSCode 编辑器也能正常高亮,但调试器不一定能读取这些变量名的值。
- 语言服务器(sumneko.lua)能识别并补全中文变量,但
lua-debug在 WATCH 面板或悬停查看时可能显示undefined或乱码 - 这不是编码问题,是调试协议层对 Unicode symbol name 的支持不一致;临时解法:调试阶段改用英文变量名,上线前再替换
- 终端乱码(显示
或方块):不是 Lua 问题,是 VSCode 终端编码设置不对,需在设置里搜terminal.integrated.defaultProfile并确保 shell 启动时加载了 UTF-8 locale











