需先确保系统已安装 Lua 并配置 PATH,再在 Sublime Text 中创建 Lua.sublime-build 文件配置构建系统,支持直接运行及带参运行,Windows 用户可指定 lua.exe 绝对路径,中文乱码建议改用日志文件查看。

怎么让 Sublime Text 运行 Lua 脚本
Sublime Text 本身不内置 Lua 运行环境,必须通过 Build System 配置调用系统已安装的 lua 可执行文件。关键前提是:你的终端里能直接运行 lua --version,否则后续所有配置都会失败。
验证方法:打开终端(macOS/Linux)或命令提示符(Windows),输入:
lua -v
如果报 'lua' 不是内部或外部命令,先装 Lua(推荐用 luarocks 或官网二进制包),再把 lua 所在目录加进系统 PATH。
新建 Lua Build System 文件
Sublime 的构建系统本质是 JSON 配置,路径为:Tools → Build System → New Build System…。粘贴以下内容并保存为 Lua.sublime-build(自动存到正确目录):
{
"cmd": ["lua", "$file"],
"selector": "source.lua",
"file_regex": "^(...*?):([0-9]*):?([0-9]*):? (.*)$",
"encoding": "utf-8",
"variants": [
{
"name": "Run with args",
"cmd": ["lua", "$file", "$args"]
}
]
}
-
"cmd"是核心:调用系统lua解释器执行当前文件 -
"selector"确保该构建只对.lua文件生效 -
"file_regex"让错误信息可点击跳转(匹配形如main.lua:5: attempt to call a nil value) -
"variants"提供带参数运行的快捷方式(按Ctrl+Shift+B后选Run with args,再输入参数)
Windows 下 lua.exe 路径没被识别怎么办
即使你装了 Lua for Windows 或手动解压了 bin,lua 命令仍可能找不到——常见于未设环境变量,或 Sublime 启动时未继承 PATH。
稳妥做法:在 Lua.sublime-build 中写死绝对路径,例如:
{
"cmd": ["C:/Program Files/Lua/5.4/lua.exe", "$file"],
"selector": "source.lua",
"file_regex": "^(...*?):([0-9]*):?([0-9]*):? (.*)$",
"encoding": "utf-8"
}
- 路径中用正斜杠
/,避免反斜杠转义问题 - 确认路径下确实存在
lua.exe(不是luac.exe) - 改完保存后,务必在 Sublime 中重新选择一次构建系统:
Tools → Build System → Lua
调试输出中文乱码(尤其 Windows)
Windows 控制台默认 GBK 编码,而 Lua 源文件通常是 UTF-8,导致 print("你好") 显示乱码。这不是 Sublime 的问题,而是终端编码冲突。
解决方向只有两个:
- 让 Lua 输出前转码(需额外库,不轻量)
- 改用支持 UTF-8 的终端:比如在 Sublime 构建中调用
wt.exe(Windows Terminal)或conhost.exe并指定代码页
更实际的做法是:接受控制台乱码,专注用 print 查逻辑;真要验证中文,改用日志文件:
io.output(io.open("log.txt", "a"))
print("你好")
io.close()
然后用 Sublime 直接打开 log.txt 查看——这比折腾终端编码更省时间。
真正卡住人的往往不是配置步骤,而是没意识到 Sublime 的构建系统完全依赖外部 lua 命令是否存在、是否可执行、是否在 PATH 里。很多“配置完了没反应”的问题,其实连 lua -v 都通不过。










