這篇文章針對的是基於 LuaJIT 的環境配置。藉助於 LuaJIT,Lua 的執行效率能夠進一步提高几十倍。若是你不是很清楚本身是須要 Lua 仍是 LuaJIT,那麼建議你從 LuaJIT 起步。LuaJIT 對應的是 Lua5.1 的語法,這一點須要注意。html
若是你想看基於最新版 Lua 環境的配置文章,請移步:http://yanfeng.life/2017/11/10/Latest-guid-for-lua/git
不一樣的腳本語言有不一樣的特性,第一接觸的腳本語言,可能會影響本身對整個腳本語言的理解和認知。我之前接觸最多的腳本語言是 JavaScript。後果就是:我一度覺得腳本語言都是必須和宿主語言運行在不一樣的進程;腳本自己的語法受環境的影響很大,很難作到統一;若是想統一寫法,都須要在應用體積上作出很是大的妥協(嵌入一個通用的 JS 解釋器,會使應用體積增大十幾 M)。github
我在試着作一些努力,去改進因大量使用 JavaScript 引發的一些特定的技術問題。可是偶然間又想起了 Lua。最開始是從玩 WOW 的室友那裏據說 Lua 的。由於他說寫WOW插件很賺錢,因此曾經認真地搜索過 Lua,如今腦海中有一些殘留的片斷。shell
我忽然意識到,可能 JavaScript 的大部分限制,在 Lua 或其餘腳本語言中並不存在。想要解決那些由於使用 JavaScript 引發的各類問題,可能只須要換一門腳本語言。編程
固然,此處不考慮一般意義上的使用難度,學習難度,推廣成本一類的因素;畢竟我是純自嗨。但假如,Lua 真的能很好解決我目前遇到的腳本語言沒法和宿主語言靈活通訊的問題,必將給本身的總體知識體系帶來一個新的提高,也必將在本身的平常實踐中創造出許多新的可能。bash
編程語言: LuaJIT 2.0.5 (對應 Lua 5.1的語法)socket
Lua 模塊管理工具:LuaRocks 2.3.0(LuaJIT版)編程語言
編輯器: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.1ide
調試插件:EmmyLua 1.2.0
操做系統:macOS 10.13.1
macOS 專用模塊管理工具: Homebrew 1.3.6
如下討論,均以 macOS 爲主,其餘系統平臺僅供參考。
下載地址:http://luajit.org/download.html
通常應選擇最新的 Stable 穩定版本。下載後解壓。
編譯很是簡單,cd 到 LuaJIT 源碼解壓目錄,而後在終端執行:
make && sudo make install
打開終端執行:
luajit -v
安裝成功後,應該有如下相似輸出:
LuaJIT 2.0.5 -- Copyright (C) 2005-2017 Mike Pall. http://luajit.org/
打開 macOS 終端,輸入如下指令:
brew tap mesca/luarocks brew install luarocks51 --with-luajit
LuaRocks 的安裝也有多種方式,這是較爲簡化高效的一種。須要注意的是,以此種方式安裝,LuaRocks 的調用命令,將變爲 luarocks-jit
Lua 平常編碼,推薦使用 IntelliJ IDEA CE(社區免費版),下載地址:https://www.jetbrains.com/idea/download/
主要是從配置難度,語法高亮,代碼提示,代碼調試等方面權衡。
Lua 的調試和高亮,主要得益於 EmmyLua。在 IntelliJ IDEA CE 的 Plugins 中,直接搜索安裝便可。記得,要先安裝此插件,而後再新建工程。安裝此插件後,工程模板,會多一個 Lua 模板選項。從 Lua 模板新建工程,會簡化許多 Lua 相關的配置。
在安裝 EmmyLua 插件以後,還須要安裝一個 Lua 庫 luasocket,才能進行調試。
打開終端,輸入如下指令:
sudo luarocks-jit install luasocket
Lua 的配置路徑要從默認的 lua,改成 luajit 命令的真實路徑,通常是 /usr/local/bin/luajit
在 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 = 6 print(fact(a))
在編輯區左側,打上幾個斷點,而後文件編輯區右鍵,選擇 Debug 'hello.lua':
一塊兒簡單看下 Debug 斷點調試的效果:
首先在在終端命令行執行:
sudo luarocks-jit install luacheck
而後在設置頁,配置 LuaCheck 的完整路徑: /usr/local/bin/luacheck
如今編輯區右鍵菜單中選擇 「Run LuaCheck」,就能夠進行靜態檢查了。不過初次接觸或運行某些示例代碼時,不用過於糾結靜態檢查的警告。
安裝 LuaJIT ,不須要安裝 Lua 5.1 了
必定是要在配置好 EmmyLua 插件後,直接基於新出現的 Lua 模板新建工程;不然在修改項目配置上,可能會花費許多時間。
調試時報錯 module 'socket' not found ,是由於沒有安裝 luasocket。
Lua 基於MIT 開源,若是哪天想本身定義某種新語言來實現特定的產品特性,能夠考慮基於 Lua 定製。
Lua 支持各類低級硬件嵌入式開發,可移植性很是好,物聯網時代可能會有新的可能和增加潛力。
若是感受 luajit 沒有 lua 寫着方便,能夠試着在 .profile 中配置 alias 命令別名,詳見:https://stackoverflow.com/a/8967864
alias lua="/usr/local/bin/luajit" alias luarocks="/usr/local/bin/luarocks-jit"
命令別名,不能 sudo 執行,如安裝 luasocket 時,仍是須要 sudo 原始命令:
sudo luarocks-jit install luasocket
若是已經安裝過 Lua 5.1,可能須要先移除它:
brew unlink lua@5.1
編碼時,光標移動到下一行的快捷鍵是:
cmd + shift + enter
以上介紹了 macOS 平臺,LuaJIT 從安裝到配置調試環境的完整過程。接下來,就能夠根據本身的節奏和須要,好好領略 Lua 之美了~