【最新版】从零开始在 macOS 上配置 Lua 开发环境

脚本语言,你可能更需要的是 Lua

不同的脚本语言有不同的特性,第一接触的脚本语言,可能会影响自己对整个脚本语言的理解和认知。我以前接触最多的脚本语言是 JavaScript。后果就是:我一度以为脚本语言都是必须和宿主语言运行在不同的进程;脚本本身的语法受环境的影响很大,很难做到统一;如果想统一写法,都需要在应用体积上做出非常大的妥协(嵌入一个通用的 JS 解释器,会使应用体积增大十几 M)。

我在试着做一些努力,去改进因大量使用 JavaScript 引起的一些特定的技术问题。但是偶然间又想起了 Lua。最开始是从玩 WOW 的室友那里听说 Lua 的。因为他说写WOW插件很赚钱,所以曾经认真地搜索过 Lua,现在脑海中有一些残留的片段。

我突然意识到,可能 JavaScript 的大部分限制,在 Lua 或其他脚本语言中并不存在。想要解决那些因为使用 JavaScript 引起的各种问题,可能只需要换一门脚本语言。

当然,此处不考虑通常意义上的使用难度,学习难度,推广成本一类的因素;毕竟我是纯自嗨。但假如,Lua 真的能很好解决我目前遇到的脚本语言无法和宿主语言灵活通信的问题,必将给自己的整体知识体系带来一个新的提升,也必将在自己的日常实践中创造出许多新的可能。

所涉及的各个工具的版本

  • 编程语言: Lua 5.3.4
  • Lua 模块管理工具:LuaRocks 2.3.0
  • 编辑器:IntelliJ IDEA CE (社区版)

Build #IC-172.4343.14, built on September 26, 2017 JRE: 1.8.0_152-release-915-b12 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Mac OS X 10.13.1

  • 调试插件:EmmyLua 1.2.0
  • 操作系统:macOS 10.13.1
  • macOS 专用模块管理工具: Homebrew 1.3.6

以下讨论,均以 macOS 为主,其他系统平台仅供参考。

安装 Lua

打开 macOS 终端,输入以下指令:

brew tap homebrew/versions
brew install lua53

Lua 的安装有多种方式,这是较为简化高效的一种。需要注意的是,以此种方式安装,Lua 的调用命令,将变为 lua5.3

安装 Lua 模块管理工具:LuaRocks

打开 macOS 终端,输入以下指令:

brew tap mesca/luarocks
brew install luarocks53

LuaRocks 的安装也有多种方式,这是较为简化高效的一种。需要注意的是,以此种方式安装,LuaRocks 的调用命令,将变为 luarocks-5.3

选择一个合适的 Lua 编辑器: IntelliJ IDEA CE

Lua 日常编码,推荐使用 IntelliJ IDEA CE(社区免费版),下载地址:https://www.jetbrains.com/idea/download/

主要是从配置难度,语法高亮,代码提示,代码调试等方面权衡。

使用 EmmyLua 插件配置调试环境

安装 EmmyLua

Lua 的调试和高亮,主要得益于 EmmyLua。在 IntelliJ IDEA CE 的 Plugins 中,直接搜索安装即可。记得,要先安装此插件,然后再新建工程。安装此插件后,工程模板,会多一个 Lua 模板选项。从 Lua 模板新建工程,会简化许多 Lua 相关的配置。

安装 luasocket

在安装 EmmyLua 插件之后,还需要安装一个 Lua 库 luasocket,才能进行调试。

打开终端,输入以下指令:

sudo luarocks-5.3 install luasocket  

修改 lua 路径配置

Lua 的配置路径要从默认的 lua,改为 lua5.3 的真实路径,一般是 /usr/local/bin/lua5.3

开始调试

在 IntelliJ IDEA CE 中新建 Lua 工程,然后新建 Lua 文件 hello.lua,输入代码:

-- defines a factorial function
function fact (n)
    if n == 0 then
        return 1
    else
        return n * fact(n - 1)
    end end
a = 42
print(fact(a))

在编辑区左侧,打上几个断点,然后文件编辑区右键,选择 Debug 'hello.lua':

一起简单看下 Debug 断点调试的效果:

注意事项

  • 一定是要在配置好 EmmyLua 插件后,直接基于新出现的 Lua 模板新建工程;否则在修改项目配置上,可能会花费许多时间。
  • 只有 Lua 5.3 以后的版本才支持 UTF-8,有大量中文处理需求的童鞋可能会需要这个信息。
  • 调试时报错 module 'socket' not found ,是因为没有安装 luasocket。
  • Lua 基于MIT 开源,如果哪天想自己定义某种新语言来实现特定的产品特性,可以考虑基于 Lua 定制。
  • 借助于 LuaJIT,Lua 的执行效率可以进一步提升几十倍。
  • Lua 支持各种低级硬件嵌入式开发,可移植性非常好,物联网时代可能会有新的可能和增长潜力。
  • 如果感觉 lua5.3 没有 lua 写着方便,可以试着在 .profile 中配置 alias 命令别名,详见:https://stackoverflow.com/a/8967864
alias lua="/usr/local/bin/lua5.3"
alias luarocks="/usr/local/bin/luarocks-5.3"
  • 命令别名,不能 sudo 执行,如安装 luasocket 时,还是需要 sudo 原始命令:

sudo luarocks-5.3 install luasocket

小结

以上介绍了 macOS 平台,Lua 从安装到配置调试环境的完整过程。接下来,就可以根据自己的节奏和需要,好好领略 Lua 之美了~

参考文档:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

修改npm全局安装模式的路径

刚学nodeJS不久,很纳闷为什么全局安装的模块在 'node安装目录/node_modules‘ 中没找到!后来仔细看了下安装成功后的信息,才发现原来是自动安...

482
来自专栏青枫的专栏

Pycharm Professional Edition 激活码和破解步骤

0、PyCharm 的官方网站下载地址是:https://www.jetbrains.com/pycharm/

602
来自专栏Jerry的SAP技术分享

写在Github被微软收购之际 - Github的那些另类用法

这几天朋友圈被微软75亿美元收购Github的新闻刷屏了。Jerry也来贡献一篇和Github相关的文章。

2377
来自专栏维C果糖

详述 GitHub 中声明 LICENSE 的方法

当我们在 GitHub 浏览一些开源项目时,我们经常会看到这样的标志: ? 如上图所示,Apache-2.0,我们可以将其称之为开源许可证,那么到底开源许可证是...

1837
来自专栏iOS122-移动混合开发研究院

【LuaJIT版】从零开始在 macOS 上配置 Lua 开发环境

前言 这篇文章针对的是基于 LuaJIT 的环境配置。借助于 LuaJIT,Lua 的执行效率可以进一步提升几十倍。如果你不是很清楚自己是需要 Lua 还是 L...

33810
来自专栏有趣的Python

用TravisCI持续集成自动部署Hexo博客的个人实践What is Travis CI?Why we need Travis CI?How to use Travis CI to deploy h

优秀的程序员都是不用持续集成的 前几天我面试了一个码农,连续几个专业问题他都没答上来。 尴尬之余,我问它:「你没有什么理想吗?你现在最渴望的事情是什么?」 ...

2986
来自专栏IT 指南者专栏

基于 Hexo + GitHub Pages 搭建个人博客

? 前言:我的博客写作之路 15 年刚上大学,第一次接触公众号,就萌生了创建一个公众号写点东西,但最终不了了之。 很快到了 16 年,开始接触网上各大博客网站...

34710
来自专栏张戈的专栏

分享Mac/Linux系统Shell终端利器SecureCRT以及注册破解方法

最近双十一剁手,退役了跟了自己 7 年多神舟承运本本,很肉痛的入手了一台 Macbook Air 13.3。在研究新鲜玩意之前,先缅怀一下这个见证我从电脑小白成...

4716
来自专栏醉程序

造了个轮子 XML 2 JSON

651
来自专栏编程

教你从零开始搭建一款前端脚手架工具

本文系原创,转载请注明:作者:Jrain Lau(https://segmentfault.com/u/jrainlau)项目地址:https://github...

3007

扫码关注云+社区