能一键运行的前提是终端可执行lua -v且Sublime已重启;需严格配置Lua.sublime-build文件,确保cmd、selector(如source.lua.enhanced)、file_regex和保存路径正确,并使用英文引号、逗号结尾、4空格缩进。

能一键运行的前提是:终端里敲 lua -v 有输出,且 Sublime 重启过——其他所有配置都建立在这个基础上。
终端必须先能跑通 lua 命令
Sublime 不自带 Lua 解释器,所谓“一键运行”只是调系统命令。如果 lua -v 报 command not found,后面所有操作都白搭。
- Windows:用
where lua查路径;没输出就去 luabinaries 下预编译包,解压后把含lua.exe的目录(如C:lua)加进系统 PATH - macOS:用
which lua;若为空,推荐brew install lua@5.4(Apple Silicon);注意 GUI 启动的 Sublime 可能读不到 shell PATH,建议记下实际路径(如/opt/homebrew/bin/lua),后续构建文件里直接写死 - Linux:很多发行版默认装的是
lua5.4,命令名不是lua,得用ls /usr/bin/lua*确认,然后在构建配置里严格匹配 - 改完 PATH 必须彻底退出 Sublime 进程再重启——它只在启动时读一次环境变量
Lua.sublime-build 文件必须满足四个硬性条件
这个 JSON 文件一旦格式出错,Sublime 会静默失效(Ctrl+B 没反应、也不报错),排查起来极难定位。
-
"cmd"必须是你终端里真实能敲通的命令:比如luajit -v有输出,就得写["luajit", "$file"];Windows 上建议写["lua.exe", "$file"],避免扩展名解析问题 -
"selector"必须跟插件注册的语言 ID 对齐:如果你装了LuaEnhanced,它注册的是source.lua.enhanced,这里就不能写source.lua,否则 Sublime 根本不绑定构建系统 -
"file_regex"决定错误点击能否跳转:标准 Lua 错误是test.lua:5: attempt to call a nil value,正则用"^(*?):([0-9]+):?([0-9]*):? (.*)$";luajit带列号(如:5:12)就得改成"^(.*?):([0-9]+):([0-9]+):" - 别用
"shell_cmd":"shell_cmd": "cd $file_path && lua $file_name"在 Sublime 构建系统里不支持&&,会直接失败;要用"working_dir": "$file_path"显式指定工作目录
右下角语言标识必须显示 Lua Enhanced
装了插件不等于生效。右下角语言标识必须是 Lua Enhanced,否则 require 跳转、注释折叠、函数参数提示这些功能全挂。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package,搜LuaEnhanced安装(别装lua-sublime这类废弃包) - 安装后打开任意
.lua文件,点右下角语言名 → 选Lua Enhanced - 如果仍无高亮,检查是否被其他插件干扰,可临时禁用其他 Lua 相关插件再试
中文路径或文件名会导致 cannot open xxx: No such file or directory
这是 Windows 上最典型的编码陷阱:Sublime 默认用系统 ANSI 编码(如 GBK)读取文件路径,但 lua.exe 在 5.4 之前只认 UTF-8 路径,两者一碰就丢字符,路径解析失败。
- 最稳方案:所有项目路径、文件名全部用英文,避开空格和中文
- 如果必须用中文路径,考虑改用绝对路径写法,在
"cmd"里直接写死解释器完整路径,例如:["C:\Lua\Bin\Lua54\lua54.exe", "$file"] - 注意 Windows 路径中斜杠要双写:
C:\Lua\Bin\,单斜杠会被 JSON 解析为转义符
真正卡住人的往往不是 JSON 写错,而是 lua 命令本身不可达,或者 selector 和插件 scope 对不上——这两个点漏查一次,后面全白配。


















