新聞中心
Lua 是一個(gè)輕量級、高效的腳本語言,被廣泛應(yīng)用于游戲開發(fā)、嵌入式設(shè)備控制等領(lǐng)域。在 Linux 系統(tǒng)中,Lua 的應(yīng)用也越來越廣泛。本文將介紹 Linux 系統(tǒng)下常用的 Lua IDE 工具,以及相應(yīng)的使用方法和技巧,幫助 Lua 開發(fā)者更高效地開展工作。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了黃梅免費(fèi)建站歡迎大家使用!
1. ZeroBrane Studio
ZeroBrane Studio 是 Lua IDE 中比較著名的一種產(chǎn)品,目前支持 Windows、Mac OS X、Linux、FreeBSD、OpenBSD 等操作系統(tǒng)。它具有輕量、快速的特點(diǎn),支持多種調(diào)試工具,用戶可以自定義語法高亮、括號匹配和自動(dòng)補(bǔ)全等功能。ZeroBrane Studio 支持在本地或遠(yuǎn)程調(diào)試 Lua 代碼,能夠自動(dòng)檢測最小需求,并且支持對 Lua 虛擬機(jī)進(jìn)行直接控制,可以幫助你更快地調(diào)試代碼并實(shí)現(xiàn)錯(cuò)誤修正。
使用方法:下載安裝 ZeroBrane Studio 后,打開軟件。軟件自帶常用調(diào)試模式,可以直接使用,也可以自定義調(diào)試模式。新建項(xiàng)目后,即可在左側(cè)目錄樹下找到應(yīng)用程序,并編輯代碼。進(jìn)入調(diào)試模式之前,需設(shè)置調(diào)試選項(xiàng),進(jìn)行連接設(shè)置。設(shè)置完成之后,即可開始調(diào)試代碼,通過斷點(diǎn)、單步調(diào)試等操作查看變量值和程序狀態(tài)。
2. Eclipse Koneki Lua Development Tools
Eclipse Koneki Lua Development Tools 是 Eclipse 社區(qū)開發(fā)的一款 Lua 開發(fā)工具,支持多種編程語言和框架,能夠輕松集成到 Eclipse 開發(fā)環(huán)境。Eclipse Koneki Lua Development Tools 提供了多種調(diào)試工具,包括調(diào)試器、日志查看器、性能分析器等,支持代碼高亮、自動(dòng)補(bǔ)全、語法檢查等功能。它還可以支持仿真器、遠(yuǎn)程調(diào)試等功能,適用于開發(fā)嵌入式設(shè)備。
使用方法:安裝 Eclipse Koneki Lua Development Tools 后,打開 Eclipse,點(diǎn)擊“Help”菜單,選擇“Eclipse Marketplace”,在搜索框中輸入“Koneki Lua Development Tools”,安裝該插件。安裝完成后,在導(dǎo)航菜單中選擇“Window”>“Open Perspective”>“Other”,在彈出窗口中選擇“Lua Development”。
3. IntelliJ IDEA with Lua plugin
IntelliJ IDEA 是 JetBrns 公司開發(fā)的一款 Java 集成開發(fā)環(huán)境,提供了豐富的插件,支持多種編程語言和框架。IntelliJ IDEA 的 Lua 插件提供了代碼高亮、自動(dòng)補(bǔ)全、語法檢查、重構(gòu)等功能,支持代碼導(dǎo)航、快速跳轉(zhuǎn)等特性。Lua 插件還支持代碼調(diào)試、單元測試、代碼覆蓋率分析等功能。
使用方法:安裝 IntelliJ IDEA 后,打開 IDE,在主菜單中選擇“File”>“Settings”>“Plugins”>“Browse repositories”,尋找 Lua 插件,安裝后重啟 IDE。創(chuàng)建新 Lua 工程后,在左側(cè) Projects 窗口選擇工程,即可使用 Lua 插件編輯代碼,支持調(diào)試斷點(diǎn)等操作。
在 Linux 下選擇合適的 Lua IDE 工具可以極大地提高我們的開發(fā)效率。本文介紹了 ZeroBrane Studio、Eclipse Koneki Lua Development Tools 和 IntelliJ IDEA with Lua plugin 三種工具的使用方法和技巧,希望能夠?qū)?Lua 的開發(fā)者有所幫助。當(dāng)然,還有其他的 Lua IDE 工具,如 SciTE、Geany、Textadept 等,也值得嘗試。同時(shí),Lua 作為一種輕量級、高效的腳本語言,未來也將有更多的開發(fā)者涌入其中,并為其打造更好的開發(fā)工具。
相關(guān)問題拓展閱讀:
- Linux lua中require “bit”
- 為什么很多IDE都會(huì)開發(fā)linux版的?他們能收回成本嗎?
- 小弟問一下各位前輩,做linux下面的C開發(fā)一般用什么IDE和調(diào)試工具
Linux lua中require “bit”
為了方便代碼管理,通常會(huì)把lua代碼分成不同的模塊,然后在通過require函數(shù)把它們加載進(jìn)來?,F(xiàn)在看看lua的require的處理流程。
函數(shù)原型:require(modname)modname —->加載的模塊名稱
首先Lua提供高級的require函數(shù)來加載運(yùn)行庫。粗略的說require和dofile完成同樣的功能但有兩點(diǎn)不同:
1、require會(huì)搜索目錄加載文件
2、require會(huì)判斷是否文件已經(jīng)加載避免重復(fù)加載同一文件。
由于上述特征,require在Lua中是加載庫的更好的函數(shù)。
require函數(shù)實(shí)現(xiàn)了不同lua文件的加載,類似于C++中的include,java中的import。
require使用的路徑和普通的路徑還是有些區(qū)別,我們一般見到的路徑都是一個(gè)目錄列表。require的路徑是一個(gè)模式列表,每一個(gè)模式指明一種由虛文件名(require的參數(shù)modname)轉(zhuǎn)成實(shí)文件名的方法。更明確地說,每一個(gè)模式是一個(gè)包含可選的問號(?)的文件名。匹配的時(shí)候Lua會(huì)首先將問號用虛文件名替換,然后看是否有這樣的文件存在。如果不存在繼續(xù)用同樣的方法用第二個(gè)模式匹配。例如,路徑如下:
?; ?.lua; c:\windows\?; /usr/local/lua/?/?.lua調(diào)用require(“add”)時(shí)會(huì)試著打開以下這些文件:
add
add.lua
c:\windows\add
/usr/local/lua/add/add.lua
為了確定路徑,Lua首先檢查全局變量LUA_PATH是否為一個(gè)字符串,如果是則認(rèn)為這個(gè)串就是路徑;否則require檢查環(huán)境變量LUA_PATH的值,如果兩個(gè)都失敗require使用固定的路徑(典型的”族戚滲?;?.lua”).
require函數(shù)的實(shí)現(xiàn)原理如下:
–require 函數(shù)的實(shí)現(xiàn)
function require(name)
if not package.loaded then
local loader = findloader(name) //這一步演示在代碼中以抽象函數(shù)findloader來表示
if loader == nil then
error(“unable to load module” .. name)
end
package.loaded = true
local res = loader(name)
if res ~= nil then
package.loaded = res
end
end
return package.loaded
end
require(在lua中它是ll_require函數(shù))函數(shù)會(huì)在路徑中搜索輸入的文件路徑,大致流程如下:
1、package.loaded
一個(gè)用于控制哪些模塊已經(jīng)加載的表,該表由require使用。當(dāng)require一個(gè)模塊名為modname的模塊且package.loaded不為false時(shí),require僅返回package.loaded存儲(chǔ)的值.
2、 package.preload
為特定模塊存仔友儲(chǔ)加載器的一個(gè)表。查找modname, 如果preload存在,那么就把它作為loader,調(diào)用loader(L)
3、package.path
查找lua庫modname,這個(gè)庫是通過module函數(shù)定義的,對于頂層的lua庫,文件名和庫名是一 樣的而且不需要調(diào)用顯式地在lua文件中調(diào)用module函數(shù)(在ll_require函數(shù)中可以看到處理方式),也就是說lua會(huì)根據(jù)lua文件直接完 成一個(gè)loader的初始化過程。
4、package.cpath(實(shí)現(xiàn)lua調(diào)用C函數(shù))
查找c庫,這個(gè)庫是符合lua的一些規(guī)范兆脊的(export具有一定特征的函數(shù)接口),lua先已動(dòng)態(tài)的方式加載該c庫(.so),然后在庫中查找并調(diào)用相應(yīng)名字的接口,例如:luaopen_hello_world
5、已之一個(gè)”.”為分割,將模塊名劃分為:(main, sub)的形式,根據(jù)package.cpath查找main,如果存在,就加載該庫并查詢相應(yīng)的接口:luaopen_main_sub,例如:先查找 hello庫,并查詢luaopen_hello_world接口
6、得到loder后,用modname作為唯一的參數(shù)調(diào)用該loader函數(shù)。當(dāng)然參數(shù)是通過lua的棧傳遞的,所以loader的原型必須符合lua的規(guī)范:int LUA_FUNC(lua_State *L)
ll_require會(huì)將這個(gè)loader的返回值符給package.loaded,如果loader不返回值同時(shí) package.loaded不存在時(shí), ll_require就會(huì)把package.loaded設(shè)為true。最后ll_reuqire把package.loaded 返回給調(diào)用者。
require的另一個(gè)功能是避免重復(fù)加載同一個(gè)文件兩次。Lua保留一張所有已經(jīng)加載的文件的列表(使用table保存)。如果一個(gè)加載的文件在表中存在require簡單的返回;表中保留加載的文件的虛名,而不是實(shí)文件名。所以如果你使用不同的虛文件名require同一個(gè)文件兩次,將會(huì)加載兩次該文件。比如require “foo”和require “foo.lua”,路徑為”?;?.lua”將會(huì)加載foo.lua兩次。我們也可以通過全局變量_LOADED訪問文件名列表,這樣我們就可以判斷文件是否被加載過;同樣我們也可以使用一點(diǎn)小技巧讓require加載一個(gè)文件兩次。比如,require “foo”之后_LOADED將不為nil,我們可以將其賦值為nil,require “foo.lua”將會(huì)再次加載該文件。
為什么很多IDE都會(huì)開發(fā)linux版的?他們能收回成本嗎?
據(jù)Stack Overflow 2023年的調(diào)查數(shù)據(jù)顯示,Linux和Windows是最常見的開發(fā)平臺,大約有一半的人使用Windows做開發(fā),其余的大約平均分配給了MacOS和Linux。
單論IDE面向的用戶來說,Linux一點(diǎn)也不小眾,IDE不開發(fā)Linux版不僅僅是散失四分之一的用戶,而是丟失了一整個(gè)生態(tài)。
Linux版IDE的需求是切切實(shí)實(shí)存在的,開發(fā)IDE的商業(yè)公司都不會(huì)忽略這個(gè)市場,而且現(xiàn)有的跨平臺GUI開發(fā)方案都比較成熟了,這也降低了不少的開發(fā)成本,如JetBrains全家桶大量使用Java,遷移難度相對較低。
商業(yè)化很成功的IDE收回成本肯定不是問題,因?yàn)閱翁譏DE售價(jià)通常都不便宜,加上銷售規(guī)模龐大,利潤十分可觀。也有不少IDE是非盈利性質(zhì)的,根本不用考慮收回成本,它們的資金由某些基金會(huì)提供或來自 社會(huì) 捐贈(zèng)。
IDE跨平臺是必然趨勢
很多大廠背后都有自己的小心思,不愿意把技術(shù)綁死在Windows上面白白的給微軟打工,通過跨平臺來壓制微軟在操作系統(tǒng)上的優(yōu)勢,重新制定 游戲 規(guī)則。如:Sun有自己的工作站和Solaris、IBM有PowerPC和OS2。
現(xiàn)在語言和框架層面已經(jīng)基本解決了跨平臺問題,那么即使在應(yīng)用方面還需要進(jìn)行少量的適配,成本也并不會(huì)高到哪里去。如果只專注一到兩個(gè)平臺的話,確實(shí)可以做到深度優(yōu)化,但這個(gè)代價(jià)是放棄未來在其他平臺發(fā)展的可能性。未來如果還要移植到其他平臺,如:Android、ARM架構(gòu),跨平臺的IDE就會(huì)顯得得心應(yīng)手。
開源社區(qū)也廣泛接受了跨平臺的思想,并且一直致力于實(shí)現(xiàn)跨平臺的目標(biāo)。像Wine、OpenOffice、Cygwin這樣的適配工作都有人搞,做IDE的怎么可能放棄Linux平臺呢?
微軟發(fā)現(xiàn)風(fēng)向標(biāo)變了不能繼續(xù)這樣玩下去了
細(xì)心的小伙伴們就會(huì)發(fā)現(xiàn)這幾年微軟變了,開始擁抱Linux、擁抱開源、擁抱跨平臺。除了Windows、Office、Azure這些可以直接盈利的項(xiàng)目沒有開源之外,其他的都開源了,目前微軟的開源項(xiàng)目已經(jīng)有一千多個(gè)了。
Vscode、GitHub、Azure已經(jīng)形成了一條完整的生態(tài)鏈,只要在這條生態(tài)鏈上稍微進(jìn)行扶持,就能吸引更多的開發(fā)者、應(yīng)用選擇Azure。
套升皮用一下納德拉說過的話:“微軟長期堅(jiān)持的一個(gè)信條是,Linux等開源軟件是公司的敵人?,F(xiàn)在我們已經(jīng)無力為這樣的態(tài)度買單。我們必須滿足客戶的需求,而更重要的是確保我們以一種前瞻的方式而不是透過后視鏡尋找機(jī)遇”。只有在戰(zhàn)略上擁抱Linux、開源、跨平臺,只有通過開源社區(qū)的廣泛參與,微軟才可能持續(xù)的壯大。
跨平臺開發(fā)正在成為主流,微軟免費(fèi)推出的跨平臺Web和云開發(fā)代碼編輯器vscode支持多達(dá) 30 多種編程語言,為跨平臺開發(fā)者帶來了極大的便利。VSCode和Typescript的組合也讓復(fù)消前雜的前端項(xiàng)目變得容易許多。
從IOS、Android、Windows Phone的混戰(zhàn)就可以看出開源、跨平臺的重要性
如果讓一個(gè)軟件開發(fā)者只開發(fā)IOS應(yīng)用,而不開發(fā)Android應(yīng)用,他絕對會(huì)說這樣是很明智的。這時(shí)跨平臺開發(fā)的重要性就開始凸顯出來,它可以減少代碼重構(gòu)、部署的時(shí)間,降低開發(fā)成本。所以跨平臺的IDE是非常有優(yōu)勢的。
以上個(gè)人淺見,歡迎批評指正。
IDE的開發(fā)是商業(yè)行為,一樣是符合市場規(guī)律的。
首先,Linux服務(wù)器占用率很高,所以使用Linux開發(fā)的程序員的比例很高。因此開發(fā)Linux版本是符合市場規(guī)律的。
其次,使用c或是Java開發(fā)的IDE,gui改改就能移植到Linux,所以開發(fā)成本可控。
最后,不論是Linux還是Windows版本,很多IDE都有免費(fèi)社區(qū)版,一方面很多開源的拿笑清東西需要更多人參與維護(hù)才能完善,另一方面使用量上來了各種賺錢的方式就產(chǎn)生了。而不只是賣軟件license賺錢一條路。
linux主要用戶群就是程序員,編程語言IDE主要用戶也是程序員,有什么理由不開發(fā)Liunx版
大公司開發(fā)跨平臺ide不一定單純?yōu)榱隋X,像是google的chrome,通過市場占有率可以推動(dòng)互聯(lián)網(wǎng)一些新技術(shù)的發(fā)展,比如 ssl,spdy,只有通過較大的市場份額才有制定標(biāo)準(zhǔn)的話語權(quán)。 還有是培養(yǎng)用戶習(xí)慣,增加用戶粘性后推廣自家其他服務(wù),比如vscode,微軟家的。 還有就是軟件成本是一次性的,開發(fā)出來后銷售的是使用權(quán),不是所有權(quán),所以可以無限授權(quán),現(xiàn)在linux開發(fā)用戶也不少,企業(yè)看中的是大客戶企業(yè)授權(quán)。這個(gè)是營收大頭,還有一些定制化服務(wù)也是單獨(dú)收費(fèi)的??傊?,一個(gè)企業(yè)公司不是做福利事業(yè)的,他是需要盈利的,只是我們一時(shí)半會(huì)沒看明白他的盈利模式。
c語言的幾個(gè)IDE是用c語言或java寫的。開發(fā)的時(shí)候注意的話,很容易跨windows和linux,成本差別很小
如果是使用跨平臺語言做的IDE(如java),不需要針對windows和linux單獨(dú)開發(fā)。
因?yàn)殚_發(fā)windows比開發(fā)跨平臺的成本高,開發(fā)windows要么mfc,開發(fā)超慢,要么.net,但是.net客戶端部署成本高。反而是qt開發(fā),效率高,部署簡單,而且跨平臺,python開發(fā)人員也好招。
ide很多都是社區(qū)版的,都是程序員自己義務(wù)工作搞出來自己用的工具。所以,為什么不開發(fā)linux版本?難道你準(zhǔn)備在windows上調(diào)試linux程序?
你說的是idea嗎?idea是java寫的,隨便套個(gè)殼可以在任何平臺使用。也是它消耗內(nèi)存巨大的原因
eclipse 開源的
小弟問一下各位前輩,做linux下面的C開發(fā)一般用什么IDE和調(diào)試工具
Linux系統(tǒng)扒巧段C語言開發(fā)一般不用IDE,因?yàn)長inux系統(tǒng)C或者C++語言IDE并不能帶來方便,相反還有點(diǎn)繁瑣,主要是不夠靈活。Linux C編程一般都是在文本編輯器中寫代碼(具體用哪個(gè)文本編輯器完全是個(gè)人喜好,專業(yè)的文本編輯器往往要比IDE的代碼編輯功能要更好更強(qiáng)大),然后在命令行下編譯(編譯可以用gcc命令、g++命令,也可以編寫一個(gè)makefile然后用make命令。如果你學(xué)會(huì)了makefile的編寫,比IDE要方便多了,只輸入一句make然后按下回車不就和點(diǎn)擊編譯按鈕一樣么),調(diào)試是用gdb。為什么說IDE不夠靈活呢,舉個(gè)例春譽(yù)子,你編寫了一個(gè)程序需要調(diào)用一個(gè)共享庫,但是你不知道怎么編譯(就是不知道該加什么編譯參數(shù)),你百度一下后,就知道編譯的命令了,但是你不知道怎么控制IDE的行為,它能正常編譯還好,如果不能正常編譯,你就會(huì)各種折騰,效率肯定不高。
如果你實(shí)在偏愛IDE,Linux上的IDE也不少(這里只列寬并舉C/C++的IDE),有codeblocks、eclipse-cdt、codelites。調(diào)試工具也有圖形界面的,比較好用的有KDbg、Affinic Debugger GUI。
lua linux ide的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于lua linux ide,Lua在Linux下的IDE選擇與使用,Linux lua中require “bit”,為什么很多IDE都會(huì)開發(fā)linux版的?他們能收回成本嗎?,小弟問一下各位前輩,做linux下面的C開發(fā)一般用什么IDE和調(diào)試工具的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價(jià)格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。
本文標(biāo)題:Lua在Linux下的IDE選擇與使用(lualinuxide)
文章鏈接:http://m.fisionsoft.com.cn/article/dhjgdep.html


咨詢
建站咨詢
