一個(gè)用Rust編寫的開(kāi)源代碼編輯器-Zed:開(kāi)箱即用的遠(yuǎn)程協(xié)作編程能力
代碼編輯器已經(jīng)成為開(kāi)發(fā)人員不可或缺的工具,使我們能夠高效地編寫、編輯和協(xié)作代碼。一個(gè)新的競(jìng)爭(zhēng)者已經(jīng)出現(xiàn)并加入了代碼編輯器的競(jìng)爭(zhēng),它承諾徹底改變開(kāi)發(fā)人員的工作方式 - Zed,一個(gè)完全用Rust編寫的多人代碼編輯器。
在本文中,我們將深入研究Zed代碼編輯器究竟是什么,它提供的特性以及它的協(xié)作功能。最后,我們將比較Zed和VS Code。讓我們開(kāi)始吧。
Zed代碼編輯器是什么?
Zed是一個(gè)用Rust編寫的新的開(kāi)源代碼編輯器,以其閃電般的快速性能和尖端的協(xié)作功能脫穎而出。它將自己定位為最快的代碼編輯器,并且擁有比VS code,Sublime Text和CLion等代碼編輯器更高的性能。
Zed速度快的核心在于其創(chuàng)新的基于gpu的用戶界面(GPUI)框架。這個(gè)GPUI框架利用現(xiàn)代圖形處理單元(GPUs)的力量來(lái)柵格化整個(gè)編輯器窗口,提供高層級(jí)的平滑性和響應(yīng)性。
關(guān)于Zed代碼編輯器需要注意的一點(diǎn)是,它不僅提供了更高的性能。還提供了豐富的協(xié)作編碼體驗(yàn),這在當(dāng)今遠(yuǎn)程協(xié)作優(yōu)先的世界中是非常需要的。
圖片
Zed代碼編輯器的特性
讓我們來(lái)探索Zed提供的一些特性。
AI集成
以下是Zed的AI能力:
- GitHub Copilot支持:Copilot可以提供實(shí)時(shí)的基于人工智能的建議。
- Open AI LLM支持:Zed使用GPT模型作為其AI助手。可以提示助手執(zhí)行各種任務(wù),如生成代碼、將代碼從一種語(yǔ)言轉(zhuǎn)換為另一種語(yǔ)言以及編寫文檔。
圖片
GPUI框架
如前所述,Zed編輯器速度的秘密在于其基于gpu的用戶界面(GPUI)框架。這個(gè)框架利用了一種新的方法來(lái)為應(yīng)用程序構(gòu)建2D用戶界面——比如代碼編輯器窗口。
使用GPUI,整個(gè)窗口——包括文本、圖形等——在圖形處理單元(GPU)上被柵格化或轉(zhuǎn)換為像素,GPU的設(shè)計(jì)目的是比cpu更有效地處理圖形渲染任務(wù)。
這種方法可以更快、更流暢地將像素傳遞到屏幕上,并可以更快地更新和重新繪制代碼編輯器的UI。
探索Zed的協(xié)作和結(jié)對(duì)編程能力
關(guān)于Zed的一個(gè)很酷的事情是,許多vscode提供的擴(kuò)展功能都內(nèi)置在Zed中。協(xié)作功能就是一個(gè)例子。雖然協(xié)作和代碼共享可以通過(guò)微軟的Live Share擴(kuò)展在VS code上實(shí)現(xiàn),但這是Zed的一個(gè)開(kāi)箱即用的功能。
Zed的協(xié)作功能有:
- 添加合作者
- 與合作者共享項(xiàng)目
- 在編輯器上跟蹤合作者的活動(dòng)
- 通過(guò)聊天和頻道與合作者交談
- 共享屏幕
讓我們?cè)敿?xì)探討一下這些特性。
添加合作者
與他人合作的第一步是將他們添加為聯(lián)系人。在將某人添加為聯(lián)系人之前,他們必須用他們的GitHub賬號(hào)登錄編輯器。這是必要的,因?yàn)閷⑹褂盟麄兊腉itHub用戶名搜索聯(lián)系人。
圖片
共享項(xiàng)目
添加聯(lián)系人后,就可以通過(guò)單擊聯(lián)系人進(jìn)行呼叫。聯(lián)系人一旦接受呼叫并加入,項(xiàng)目就被共享了。
確保只與信任的人協(xié)作和共享項(xiàng)目,因?yàn)楣蚕眄?xiàng)目將使他們能夠訪問(wèn)你的本地文件系統(tǒng)。
圖片
在下面的截圖中,可以在左上角看到用戶圖標(biāo),協(xié)作側(cè)邊欄面板顯示協(xié)作中的不同人員:
圖片
合作者跟蹤
Zed的多光標(biāo)編輯經(jīng)驗(yàn)可以讓你通過(guò)他們的光標(biāo)和頭像來(lái)跟蹤合作者。當(dāng)多個(gè)開(kāi)發(fā)人員同時(shí)在一個(gè)項(xiàng)目上工作時(shí),這尤其有用,因?yàn)樗鼓隳軌蛞荒苛巳坏刂勒l(shuí)在做什么:
聊天和頻道
Zed提供的另一個(gè)協(xié)作特性是聊天功能。可以在代碼編輯器中與合作者進(jìn)行討論。聊天還帶有音頻功能,允許你與他人進(jìn)行語(yǔ)音通話。
然后是Zed的頻道,這些類似于Slack頻道,充當(dāng)團(tuán)隊(duì)的虛擬辦公室。可以為不同的主題設(shè)置頻道,查看每個(gè)頻道上都有誰(shuí),與他們聊天,甚至為頻道創(chuàng)建共享筆記。
圖片
請(qǐng)注意,頻道功能目前是免費(fèi)的。然而,Zed團(tuán)隊(duì)打算在測(cè)試期后將其變成付費(fèi)功能。
屏幕共享
Zed還允許你與他人共享屏幕。多虧了這個(gè)功能,你不再需要離開(kāi)你的編輯器,跳上QQ會(huì)議、Zoom或Teams。相反,你可以直接在編輯器中與隊(duì)友協(xié)作:
圖片
Zed與VS Code比較
擴(kuò)展性
Zed最近推出了對(duì)其擴(kuò)展注冊(cè)表的支持。在此發(fā)布之前,插件和擴(kuò)展在Zed上是不可用的。但是,通過(guò)這次發(fā)布,開(kāi)發(fā)人員現(xiàn)在可以創(chuàng)建自己的擴(kuò)展并與Zed用戶共享。
可以通過(guò)在命令面板中運(yùn)行zed: extensions來(lái)瀏覽所有可用的擴(kuò)展。
添加擴(kuò)展對(duì)Zed的成功至關(guān)重要,并且有助于推廣。然而,要趕上擁有成千上萬(wàn)擴(kuò)展的VS Code,它還有很長(zhǎng)的路要走。但無(wú)論如何,Zed走在正確的道路上。
主題
Zed和VS Code都提供了光明和黑暗的主題。Zed不允許創(chuàng)建自己的主題,而VS Code允許用戶創(chuàng)建主題,甚至通過(guò)擴(kuò)展市場(chǎng)與他人共享。
Zed目前提供九組主題,而在VS Code的擴(kuò)展市場(chǎng)中有數(shù)百個(gè)主題可供選擇。
盡管Zed提供的主題比VS Code少,但它確實(shí)提供了各種各樣的淺色和深色主題。所以,這不應(yīng)該是一個(gè)做選擇的主要原因,除非你是一個(gè)經(jīng)常改變主題的人,并且希望有更多的選擇。
用戶體驗(yàn)
- 在用戶體驗(yàn)方面,Zed和VS Code有一些顯著的區(qū)別:
- VS Code允許將編輯器選項(xiàng)卡從當(dāng)前窗口拖到新窗口中,而Zed不允許。
- 在VS Code中,當(dāng)放大時(shí),它會(huì)放大整個(gè)UI。但是,Zed只放大編輯器,而界面的其余部分(側(cè)邊欄和終端)保持默認(rèn)的縮放級(jí)別。
在使用Zed時(shí),當(dāng)點(diǎn)擊文件樹(shù)中的圖像時(shí),系統(tǒng)沒(méi)有響應(yīng)。而在VS Code中點(diǎn)擊一個(gè)圖像時(shí),它會(huì)在一個(gè)新的選項(xiàng)卡中打開(kāi)這個(gè)圖像,讓你看到它。
性能
Zed團(tuán)隊(duì)的數(shù)據(jù)顯示,Zed代碼編輯器提供了比VS code更好的性能。事實(shí)上,Zed的速度是其他編輯器的8倍。有些人可能會(huì)爭(zhēng)辯說(shuō),速度和響應(yīng)時(shí)間的這種輕微改進(jìn)對(duì)于人眼和普通用戶來(lái)說(shuō)是微不足道的。
圖片
協(xié)作能力
Zed和VS Code都提供了協(xié)作功能,使開(kāi)發(fā)團(tuán)隊(duì)能夠遠(yuǎn)程協(xié)作。就協(xié)作而言,Zed和VS Code之間有兩個(gè)主要區(qū)別:
- Zed的協(xié)作特性是內(nèi)置的,而VS Code依賴于Live Share擴(kuò)展進(jìn)行協(xié)作。
- Zed提供音頻通話、聊天服務(wù)器和屏幕共享功能,而VS Code沒(méi)有。
雖然這兩種代碼編輯器都提供了協(xié)作工具,但Zed的代碼編輯器是內(nèi)置的,而且功能更多。