Sublime Text 默认情况下是不认 .lua 文件的语法高亮的。很多人以为是插件没装全,折腾半天才发现,根本原因是 Sublime 压根没把语言定义绑定上去。尤其做游戏开发,经常要用到 loveluajit,光有高亮还远远不够,必须把构建系统和工作目录也一并配好,否则寸步难行。

怎么让 .lua 文件一打开就高亮?

打开一个 .lua 文件,如果右下角显示的是“Plain Text”,那就说明还没生效。这不是什么 bug,纯粹是 Sublime 不知道该用哪个语法包来解析它。关键步骤其实很简单:打开任意一个 .lua 文件,点击右下角的语言名,然后从列表里选择 Lua(注意,不是 LuaEnhancedLuaLanguage 这些变体)。之后所有同后缀的文件都会自动识别。

如果你翻遍了列表,根本找不到 Lua 这个选项:

Ctrl+B 运行脚本却报 lua: command not found

这是环境层面的问题,跟代码本身没关系。Sublime 的构建系统本质上只是调用命令行,它不负责帮你装 Lua,也不会读取你 shell 里配置的 PATH(尤其是在 macOS 上通过 GUI 启动时)。

先别急着配构建系统,打开终端确认一下:

验证通过后,就可以新建构建系统了:Tools → Build System → New Build System…,然后粘贴以下内容:

{  "cmd": ["lua", "$file"],  "selector": "source.lua",  "file_regex": "^(*?):([0-9]+):?([0-9]*):? (.*)$",  "working_dir": "$file_path"}

这里有个关键点:"working_dir": "$file_path" 必须加上。因为游戏脚本经常需要读取 assets/conf.lua 这些文件,如果不设置工作目录,love 启动时就会直接报错,找不到文件。

为什么 print() 输出一闪而过,或者点错行跳不到?

Windows 下窗口闪退,本质上是进程结束得太快;而跳转错行,则是 file_regex 没有匹配上真实的报错格式。

解决闪退问题:

修复跳转问题:

游戏开发绕不开的三个坑

搞定高亮和运行只是第一步,真正写 love 或嵌入式 Lua 的时候,下面这三个点最容易卡住半天:

本文转载于:https://www.php.cn/faq/2348804.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。