Sublime Text 本身不支持 Lua 调试(断点、单步、变量查看),所谓“一键调试”实为「一键运行」+ 手动 print 或外接调试器;真需断点应换 VS Code + Lua Debug 或 ZeroBrane Studio。

Sublime Text 本身不支持 Lua 调试(断点、单步、变量查看),所谓“一键调试”实际是「一键编译运行」+ 手动加 print 或用外部调试器配合。真要断点,得换 VS Code + Lua Debug 插件,或用 ZeroBrane Studio 这类专用工具。
Ctrl+B 没反应?先确认 lua 命令能否在终端跑通
这是 90% 失败的根源——Sublime 构建系统只是调系统命令,不自带解释器。
- 打开终端(Windows:cmd/PowerShell;macOS/Linux:Terminal),执行
lua -v;有输出版本号才算通过 - Windows 上常见问题:
where lua没结果 → 去 luabinaries 下预编译包,解压后把含lua.exe的目录加进系统 PATH - macOS 用
brew install lua@5.4后,GUI 启动的 Sublime 可能读不到 shell PATH → 记下which lua输出(如/opt/homebrew/bin/lua),后续构建文件里直接写死 - Linux 用户注意:
lua命令可能不存在,真实命令是lua5.4或luajit,用ls /usr/bin/lua*确认再配 - 改完 PATH 必须彻底退出 Sublime 所有进程(包括后台),再重启——它只在启动时读一次环境变量
Lua.sublime-build 文件必须满足四个硬性条件
JSON 格式极脆弱,错一个逗号、混用中文引号、缩进用 tab,都会静默失效(Ctrl+B 没反应也不报错)。
-
"cmd"字段必须是你终端里真实能敲通的命令,例如:["lua5.4", "$file"]或["C:/Lua/Bin/lua54.exe", "$file"](Windows 绝对路径推荐双斜杠C:\Lua\Bin\lua54.exe) -
"selector"必须跟已安装插件注册的语言 ID 对齐:装了lua-enhanced就得写"source.lua.enhanced";只装了旧版插件或没装,才用"source.lua" -
"file_regex"决定错误点击能否跳转到对应行。标准 Lua 错误格式是test.lua:5: attempt to call a nil value,正则应为"^(.*?):([0-9]+):?([0-9]*):? (.*)$";若用luajit且带列号(:5:12),就得改成"^(.*?):([0-9]+):([0-9]+):" - 保存路径必须是
Packages/User/(可通过Preferences → Browse Packages…打开),文件名严格为Lua.sublime-build(大小写敏感,不能是lua.sublime-build或LuaBuild.sublime-build)
中文路径或文件名下运行报 cannot open xxx: No such file or directory
这是 Windows 上最隐蔽的坑:Sublime 默认用系统 ANSI 编码(如 GBK)读取文件路径,而 Lua 5.4 之前只认 UTF-8 路径,一碰就丢字符。
- 临时解决:把 .lua 文件移到纯英文路径下(如
D:/code/hello.lua)再运行 - 根治方法:升级到 Lua 5.4+(官方二进制包已支持 UTF-8 路径),或改用绝对路径写法,在
"cmd"里显式传入 UTF-8 编码后的路径(不推荐,太绕) - 别用
"shell_cmd":像"shell_cmd": "cd $file_path && lua $file_name"在 Sublime 构建系统里不支持&&,会直接失败;正确做法是用"working_dir": "$file_path"显式指定工作目录
真正卡住的地方往往不是配置项写错,而是右下角语言标识没切到 Lua Enhanced(显示 “Plain Text” 或 “Lua” 都不行),或者构建系统没手动选中(Tools → Build System → Lua)。这两个动作漏一个,前面所有 JSON 都白写。


















