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


咨詢
建站咨詢
