【最新版】從零開始在 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
主要是從配置難度,語法高亮,程式碼提示,程式碼除錯等方面權衡。
使用 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 支援各種低階硬體嵌入式開發,可移植性非常好,物聯網時代可能會有新的可能和增長潛力。
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 之美了~
參考文件:
相關推薦
【最新版】從零開始在 macOS 上配置 Lua 開發環境
指令碼語言,你可能更需要的是 Lua 不同的指令碼語言有不同的特性,第一接觸的指令碼語言,可能會影響自己對整個指令碼語言的理解和認知。我以前接觸最多的指令碼語言是 JavaScript。後果就是:我一度以為指令碼語言都是必須和宿主語言執行在不同的程序;指令碼本
【C/C++】從零開始的cmake教程
本文轉自:https://blog.csdn.net/gg_18826075157/article/details/72780431 通過編寫CMakeLists.txt,然後執行cmake命令可以自動生成對應Makefile,從而控制make的編譯過程。因此在學習cmake之前,建議先對make有
【區塊鏈】從零開始寫一個區塊鏈遊戲--水果機
機器環境 win10 nodev8.9.4 npm install -g truffle npm install -g ganache-cli Github地址 效果 初始化專
【工作筆記】從零開始學ExtJs6( 四)—— 首頁樹狀選單和Tab頁的實現
題外話 做一個專案要向完成對應的模組,肯定是先要有樹形選單結構,點選對應才dna跳轉到相應介面,在extjs中如何實現。是上週遇到的一個小問題,現在做做記錄 app目錄下建立data/me
【工作筆記】從零開始學ExtJs6(一)——構建專案
題外話 因為工作,需要用到ExtJs搭建一個報表系統,做後端的,前端Ext完全沒有接觸過,所以從頭開始,此工作日記就是記錄我學習ext的過程,從搭建,到登入,到首頁等等這些元件,慢慢摸索,然後記
【工作筆記】從零開始學ExtJs6(二)——登入模組
題外話 上章,已經有一個專案框架了。大概是這個樣子 app/store : stores檔案 app/model : models檔案 classic 桌面端檔案 modern 手機端檔案 classic/view: viewControl
【Camera專題】-從零開始的Camera學習之路——啟動篇
1.吐槽 如今工作也一年多了,在現在的公司是啥都除錯,從EMMC,TP,LCD,CAMERA等等,對於底層驅動也有了一定的認識
kotlin web開發教程【一】從零搭建kotlin與spring boot開發環境
1.8 jre cond utf8 erro 2.0 .com 就會 一個tomcat IDEA中文輸入法的智能提示框不會跟隨光標的問題我用的開發工具是IDEA這個版本的IDEA有一個問題;就是中文輸入法的智能提示框不會跟隨光標解決這個問題的辦法很簡單,只有在安裝目錄下把J
【最新版】h5房卡炸金花源碼開發 平臺搭建教程分享
blog 端口 use socket 信息 最新 target inux 自己 【最新版】h5房卡炸金花源碼開發 平臺搭建教程分享聯系方式:q-2152876294 H5房卡牛牛源碼 6人/9人牛牛 H5微信小遊戲牛牛 手機H5牛牛遊戲源碼附詳細架設教程 遊戲環境配置:
從零開始使用 Webpack 搭建 Vue3 開發環境
從零開始使用 Webpack 搭建 Vue3 開發環境 ### 建立專案 首先需要建立一個空目錄,在該目錄開啟命令列,執行 `npm init` 命令建立一個專案,這個過程會提示輸入一些內容,完成後會自動生成一個 package.json 檔案 Webpack 的配置檔案 **project** `
【1】從零開始做第三方支付開發-----初步了解概念
用例 深入 hub 編寫 不知道 了解 程序員 系列 bsp 這是第三方支付開發的第一篇. 目前很多公司在做海外支付, 但是不知道怎麽開始. 本人公司就是做海外產品, 涉及到paypal和stripe支付, 有比較多的經驗, 希望可以幫助需要的朋友. 我是做Java開發,
【許曉笛】從零開始運行EOS系統
EOS 系統 nodeos keos 復習一下上次文章的內容,EOS 系統主要有三個應用程序:nodeos: EOS 系統的核心進程,也就是所謂的“節點”。cleos:本地的命令行工具,通過命令行與真人用戶交互,並與節點(nodeos)和錢包(keosd)通信。是用戶或者開發者與節點進程交互的橋梁
【WebAPI】從零開始學會使用WebAPI
使用 接口 web 發布 如何 webapi 文檔 記錄 開始 介紹 以後會慢慢總結在項目使用中或者學習到的webAPI相關的知識,在這裏做記錄。 傳送門 【WebAPI】——創建簡單的WebAPI 【WebAPI】—&mda
【溫故知新】從零開始搭建web項目
cati 哪些 servlet 使用 描述 query mave pom.xml 配置 從零開始新建一個web項目 1. 新建 maven 項目,不使用 archetype,最終的結果如圖所示(左側是目錄結構,右側是 pom.xml) 2. 因為是 web 項
【溫故知新】從零開始搭建 java web項目(二)
添加 以及 pro tps ren 處理方法 獲取 mapping 映射 系列一介紹了新建一個 web 項目的基本步驟,系列二就準備介紹下基本的 jsp 和 servlet 使用。 (關於jsp的編譯指令、動作指令、內置對象不在本文討論範圍之內) 1. 首先,在 pom.
【Linux】【Services】【PaaS】從零開始的Devops生活(2. kubernetes)
ces 自帶 .html 新版本 demon 最新版本 環境 html ice 1. 簡介 1.1. kubernetes,基礎架構和概念請參考https://www.cnblogs.com/demonzk/p/8301087.html 1.2. 如果想把kubernete
【C#資料結構-從零開始】單鏈表
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp8 {
【SpringMvc】從零開始學SpringMvc之資料庫(二)
大家好,在上一篇中,我們介紹了SpringMvc 的搭建,這篇我們來看下SpringMvc連線資料庫。 【SpringMvc】從零開始學SpringMvc之初始化(一) 準備 首先, 需要安裝Mysql、Navicat(或者類似軟體)、有一點sql基礎,瞭解一點
【SpringMvc】從零開始學SpringMvc之初始化(一)
大家好,我們今天開始SpringMvc 這個系列,由於筆者也是安卓出身,對SpringMvc 也是接觸不久,所以,這個系列僅僅只是記錄筆者學習SpringMvc 過程中的心得,如有錯誤,歡迎指正。 在開始之前,我們需要準備一些東西,JDK、Eclipse(MyEclipse)、Tom
【SpringMvc】從零開始學SpringMvc之實現使用者登入(三)
大家好,在前2篇中,我們實現了SpringMvc的配置和資料庫連線,這一篇我們來用html/ajax實現一個簡單的登入功能。 【SpringMvc】從零開始學SpringMvc之初始化(一) 【SpringMvc】從零開始學SpringMvc之資料庫(二) 準