【Lua】ZeroBrane Studio免费专业IDE使用详解

▒ 目录 ▒

    • 🛫 问题
      • 描述
      • 环境
    • 1️⃣ IDE界面说明
      • 项目目录
      • 编辑器
      • 控制台窗口
      • 输出窗口
      • 选择解释器
      • 堆栈窗口
      • 监视窗口
      • 大纲窗口
    • 2️⃣ 调试程序
    • 3️⃣ 自定义lua解释器
      • 编译自己的lua解释器
      • 增加interpreters配置文件
      • 重启IDE
    • 4️⃣ 其它IDE比较
      • Lua Editor
      • VSCode
    • 🛬 结论
    • 📖 参考资料

🛫 问题

描述

一直以来,写lua脚本都是做些小项目,也就十几个文件,然后写个批处理合并下文件,将代码编译后使用。
调试方法就是打日志,各种日志。
然而,这样的调试极其不利于长期开发,决定找个IDE,也就是今天的主角:ZeroBrane Studio

环境

版本号描述
文章日期2023-06-
操作系统Win11 - 21H2 - 22000.1335
ZeroBrane Studio1.9.0
lua.exe5.4

1️⃣ IDE界面说明

先上个全图
在这里插入图片描述

项目目录

当前项目目录将显示在“项目”面板中。 项目面板以多种方式为您提供帮助:它提供项目中所有文件的鸟瞰图,突出显示您正在使用的文件(只要它在同一项目中),并允许您通过选择文件名称并按 或双击它来打开文件。
在这里插入图片描述

切换项目目录,有很多方法:

  • 使用下拉列表选择之前使用的项目目录之一,
  • 在项目面板顶部的下拉列表中键入或复制新路径,
  • 转到并设置新目录,或Project | Project Directory | Choose…
  • 转到以将其设置为与当前文件的路径相同的目录。Project | Project Directory | Set From Current File

编辑器

IDE 允许您打开多个程序或文件并同时处理它们。
像其它编辑器一样,支持快捷键:

  • windows下:Ctrl-W
  • MacOS下:Cmd-W

控制台窗口

控制台窗口允许您运行 Lua 代码片段并计算 Lua 表达式的值。
它将在本地控制台之间自动切换,该控制台允许您访问运行 IDE 的 Lua 解释器,以及一个远程控制台,允许您在调试器中停止应用程序时执行代码片段并更改应用程序中的变量值。
在这里插入图片描述

输出窗口

“输出”窗口捕获您运行的程序的输出,以及您在执行这些程序期间可能收到的任何错误和其他消息。
“输出”窗口还用于输入程序可能读取的文本。您将在“输出”窗口中看到一个提示,其中需要输入文本。
在这里插入图片描述

选择解释器

IDE 支持不同的 Lua 引擎,这些引擎在运行或调试时可能需要不同的参数或设置。
这些设置由解释器指定,可以通过转到并从列表中选择所需的解释器来选择解释器。 这不仅设置了应用程序的运行和调试环境,还设置了自动完成、暂存器和其他依赖于引擎的设置。

切换方式:

  • 菜单方式:Project | Lua Interpreter
  • IDE右下角选项
    在这里插入图片描述

堆栈窗口

“堆栈”窗口不仅提供带有函数名称的调用堆栈,而且还显示每个堆栈帧的所有局部变量和上行值。 您甚至可以向下钻取以获取表中各个元素的值。
在这里插入图片描述

监视窗口

“监视”窗口提供了一种在调试器中每次停止后计算变量和表达式的便捷方法。 还可以向下钻取以获取表中各个元素的值。
在这里插入图片描述

大纲窗口

“大纲”窗口提供了一种查看当前文件结构的方法,其中所有函数及其参数按在文件中定义的顺序(默认)或排序列表显示。
在这里插入图片描述

2️⃣ 调试程序

除了运行程序之外,您还可以调试它们,这使您能够暂停它们、检查变量、计算表达式、更改值,然后继续。

  1. 下断点:
    当程序运行时,可以通过转到 来暂停它,这将在下一个执行 lua 命令时停止程序。
  • 通过菜单方式
    在这里插入图片描述
  • 通过工具栏
    在这里插入图片描述
  • 通过快捷键:Ctrl+F9

调试器停止后,可以设置/删除断点(使用 )、单步执行代码(使用 、 和命令)。
在这里插入图片描述

使用“监视”窗口检查变量、使用“堆栈”窗口查看调用堆栈、在控制台中运行 Lua 命令、运行到光标位置 , 并继续执行程序(使用 )。
在这里插入图片描述

3️⃣ 自定义lua解释器

开发中,经常自己导出一些lua接口,怎样使用自己的解释器呢?

编译自己的lua解释器

这个就不详细讲了,可以通过lua api自己导出,也可以通过三方库导出,比如:kaguya

然后将自己的lua解释器放到IDE的bin目录下,如下图是小编自己改的解释器:
在这里插入图片描述

增加interpreters配置文件

以lua54为例,在目录interpreters中增加配置文件luadeb54.lua
文件内容为

dofile 'interpreters/luabase.lua'
local interpreter = MakeLuaInterpreter(5.464, ' 5.464')
interpreter.skipcompile = true
return interpreter

重启IDE

最后重启IDE即可使配置生效。

4️⃣ 其它IDE比较

Lua Editor

  • 优点:支持简体中文,无需专门配置环境,图形化操作较为完善,且启动速度快,运行调试上对初学者极为友好
  • 缺点:这个是商业闭源软件,十几年前就已在github停止更新了,启动时会出现浏览器弹窗。
    在这里插入图片描述

VSCode

  • 优点:有各种第三方插件,生态完善
  • 缺点:对既不熟悉Lua也不熟悉VSCode的初学者来说(其稍微进行点操作就卡的不行这点更是对初学者信心的极大打击),快速上手有不小的难度,自定义成适合Lua跑的状态需要费点心思,但熟悉以后要在VSCode中跑lua会相当顺手。

推荐教程(上手VSCode运行调试Lua代码必看):《Visual Studio Code -> VSCode 开发环境搭建 ---- Lua 开发环境搭建 及 代码运行(code runner 插件)https://blog.csdn.net/yanwennian/article/details/103480938》

🛬 结论

这里就说下ZeroBrane Studio的优势吧。

  • 可以调试了,能查看各种堆栈、局部变量等,十分方便定位问题。
  • 支持远程调试,厉害了。
  • 支持指定不同的lua解释器,包含各种游戏框架的(LÖVE, Corona, Moai, Gideros, Marmalade Quick, Cocos2d-x)。
  • 跨平台(Windows、macOS 和 Linux)
  • 代码提示(函数、关键字和自定义 API )
  • 交互式控制台,用于通过本地和远程执行来测试Lua代码片段
  • 本身开源,可以作为学习使用
  • IDE本身通过lua开发,含有大量学习代码
  • 支持各种开发库,不用重复造轮子:https://github.com/pkulchenko/ZeroBranePackage

还需要说一点是,开发过程中,要使用英文路径,否则会报错的。

📖 参考资料

  • 官方文档: https://studio.zerobrane.com/documentation
  • 【踩坑记录】三款Lua IDE工具对比 https://blog.csdn.net/Seekladoom/article/details/125176936
  • 支持开发库:https://github.com/pkulchenko/ZeroBranePackage

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/34792.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis:redis基于各大实战场景下的基本使用

文章目录 前言String 命令实战1.业务缓存对应redis中的指令伪代码 2.分布式锁对应redis中的指令伪代码 3.限流对应redis中的指令伪代码 List 命令实战1.提醒功能对应Redis中的指令伪代码 2.热点列表对应Redis中的指令伪代码 Hash 命令实战1.用户资料缓存对应redis中的指令伪代码…

算法设计与分析 课程期末复习简记

目录 网络流 线性规划 回溯算法 分支限界 贪心算法 动态规划 分治算法 算法复杂度分析 相关概念 网络流 下面是本章需要掌握的知识 • 流量⽹络的相关概念 • 最⼤流的概念 • 最⼩割集合的概念 • Dinic有效算法的步骤 • 会⼿推⼀个流量⽹络的最⼤流 下面对此依次进行复…

数据结构--串的定义和基本操作

数据结构–串的定义和基本操作 注:数据结构三要素――逻辑结构、数据的运算、存储结构(物理结构) 存储结构不同,运算的实现方式不同 \color{pink}存储结构不同,运算的实现方式不同 存储结构不同,运算的实现方式不同 串的定义 串 …

suse ha for sap scale-up性能优化场景安装配置

1. 安装SUSE操作系统 在官网下载SUSE Linux Enterprise Server for SAP Applications安装介质,在安装操作系统过程中,选择SUSE Linux Enterprise Server for SAP Applications操作系统。 在软件选择界面,根据需要选择SAP HANA Server Base…

Pytorch--模型微调finetune--迁移学习 (待继续学习)

https://www.bilibili.com/video/BV1Z84y1T7Zh/?spm_id_from333.788&vd_source3fd64243313f29b58861eb492f248b34 主要方法 torchvision 微调timm 微调半精度训练 背景(问题来源) 解决方案 大模型无法避免过拟合,

CSS 自定义提示(重写 title 属性)

前言 CSS 原生 title 属性太丑&#xff0c;需要重写 效果 改造 HTML 代码第2行&#xff0c;tip-label 自定义属性 <div class"tools"><div class"btn tip" v-for"item of list" :key"item.icon" :tip-label"item.l…

Linux内核代码中常用的数据结构

Linux内核代码中广泛使用了数据结构和算法&#xff0c;其中最常用的两个是链表和红黑树。 链表 Linux内核代码大量使用了链表这种数据结构。链表是在解决数组不能动态扩展这个缺陷而产生的一种数据结构。链表所包含的元素可以动态创建并插入和删除。 链表的每个元素都是离散…

【电商API接口系列】关键词搜索商品列表,品牌监控场景

API接口允许不同应用程序之间共享数据&#xff0c;在系统之间传输、读取和更新数据。例如&#xff0c;一个电商网站可以通过API接口获取支付系统的支付状态。API接口允许开发人员使用他人开发的功能来扩展自己的应用程序。通过调用第三方API接口&#xff0c;开发人员无需重新实…

Jenkins全栈体系(一)

Jenkins Jenkins&#xff0c;原名 Hudson&#xff0c;2011年改为现在的名字。它是一个开源的实现持续集成的软件工具。 第一章 GitLab安装使用 官方网站&#xff1a;https://about.gitlab.com/ 安装所需最小配置 内存至少4G https://docs.gitlab.cn/jh/install/requireme…

大禹智库:下一代向量数据库————具备在线化,协作化,可视化,自动化和安全互信的向量数据库

目录 一、在线化 二、协作化 三、可视化 四、自动化 五、安全互信 结论&#xff1a; 行业分析报告&#xff1a;下一代向量数据库的特征 摘要&#xff1a; 向量数据库是一种用于存储和处理向量数据的数据库系统。随着人工智能和大数据技术的快速发展&#xff0c;向量数据…

(css)在网页上添加Live 2D网页二次元可动小人

(css)在网页上添加Live 2D网页二次元可动小人 效果&#xff1a; 代码&#xff1a; <script src"js/L2Dwidget.min.js"></script> <script src"js/L2Dwidget.0.min.js"></script> <script>L2Dwidget.init({"model&quo…

SpringBoot2+Vue2实战(十)权限管理

一、父子菜单实现 新建数据库表 sys_menu sys_role 实体类 Role import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName;import java.io.Serializable;import l…

博客相关推荐在线排序学习实践

现有固定槽位的填充召回策略在相关线上推荐服务中缺乏有效的相关性排序&#xff0c;存在较硬的排列顺序&#xff0c;各个策略之间互相影响&#xff0c;导致线上基于规则的拓扑图比较复杂&#xff0c;因此设计在线推理服务&#xff0c;通过学习用户行为完成在线排序。 1. 博客相…

【计算机网络】数据链路层之随机接入-CSMA/CD协议(总线局域网)

1.概念 2.信号碰撞&#xff08;冲突&#xff09; 3.解决方案 CSMA/CD 4.争用期&#xff08;端到端往返时延&#xff09; 5.最小帧长 6.最大帧长 7.指数退避算法 8.信道利用率 9.帧发送流程 10.帧接受流程 12.题目1 13.题目2 14.题目3 15 小结

数字IC后端学习笔记:等效性检查和ECO

1.形式验证工具 对于某些电路的移植&#xff0c;一般不需要对新电路进行仿真验证&#xff0c;而可以直接通过EDA工具来分析该电路的功能是否与原电路一致&#xff0c;此种验证方法可以大量减少验证时间&#xff0c;提高电路的效率。 等效性检查&#xff08;Equivalence Check&a…

给LLM装上知识:从LangChain+LLM的本地知识库问答到LLM与知识图谱的结合

第一部分 什么是LangChain&#xff1a;连接本地知识库与LLM的桥梁 作为一个 LLM 应用框架&#xff0c;LangChain 支持调用多种不同模型&#xff0c;提供相对统一、便捷的操作接口&#xff0c;让模型即插即用&#xff0c;这是其GitHub地址&#xff0c;其架构如下图所示 (点此查…

状态检测防火墙

状态检测防火墙原理 对于已经存在会话表的报文的检测过程比没有会话表的报文要短很多。通过对一条连接的首包进行检测并建立会话后,该条连接的绝大部分报文都不再需要重新检测。这就是状态检测防火墙的“状态检测机制”,相对于包过滤防火墙的“逐包检测机制”的改进之处。这种…

ChatLaw:中文法律大模型

论文题目&#xff1a;ChatLaw: Open-Source Legal Large Language Model with Integrated External Knowledge Bases   论文日期&#xff1a;2023/06/28   官网地址&#xff1a;https://www.chatlaw.cloud   论文地址&#xff1a;https://arxiv.org/abs/2306.16092   G…

Compose编排工具应用

补充&#xff1a; Docker Compose 文件&#xff1a;Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。它使用 YAML 文件格式来描述应用程序的各个组件和其配置。以下是一个简单的示例&#xff1a; 在上面的示例中&#xff0c;我们定义了两个服务&#xff1a;web 和…

浅谈金融场景的风控策略

随着互联网垂直电商、消费金融等领域的快速崛起&#xff0c;用户及互联网、金融平台受到欺诈的风险也急剧增加。网络黑灰产已形成完整的、成熟的产业链&#xff0c;每年千亿级别的投入规模&#xff0c;超过1000万的“从业者”&#xff0c;其专业度也高于大多数技术人员&#xf…