遠端開發
即使您的程式碼庫不在您的本地電腦上,遠端開發也能讓您以思考的速度編寫程式碼。您在本地使用 Zed,因此使用者介面可以立即回應,但將繁重的計算卸載到開發伺服器,以便您可以有效地工作。
注意:遠端功能仍處於「Alpha」階段。在正式發布之前,我們還有幾項想要進行的變更。
概覽
遠端開發需要執行兩個 Zed 執行個體。一個是在遠端電腦上的無頭執行個體,另一個是在您本地電腦上的編輯器介面。所有配置都在您的本地電腦上完成。
目前,這兩個執行個體透過 Zed 的伺服器連線,但我們打算在正式發布此功能之前建立點對點通訊。
設定
- 下載並安裝最新的 Zed 預覽版。
- 使用
cmd-shift-p remote
開啟遠端專案對話方塊。 - 點擊「新增伺服器」。
- 選擇透過 SSH 設定,或依照手動設定進行。
注意:無論哪種方式,您的筆記型電腦和遠端電腦都將透過 https://collab.zed.dev/ 進行通訊,因此您需要在遠端電腦上擁有對外的網際網路連線。
- 現在,您可以在筆記型電腦上開啟遠端電腦上的資料夾。
注意:Zed 目前還無法很好地處理開啟非常大的目錄(例如,可能包含超過 100,000 個檔案的
/
或~
)。我們正在努力改進這一點,但同時建議您只開啟特定專案或非常大的單一儲存庫的子資料夾。
疑難排解
使用者介面未顯示
您需要使用相對較新的 Zed 版本(v0.145.0 或更新版本)。
SSH 連線
如果您選擇透過 SSH 連線,您指定的命令將在 Zed 終端機中執行,讓您有機會輸入所需的任何密碼/金鑰片語等。建立連線後,Zed 將下載並安裝到遠端電腦上的 ~/.local/bin/zed
,並執行。
如果您沒有看到 Zed 命令的任何輸出,則 Zed 很可能在啟動時崩潰。您可以透過切換到手動模式並傳遞 --foreground
旗標來進行疑難排解。請提交錯誤報告,以便我們可以一起偵錯。
類似 SSH 的連線
Zed 會攔截 ssh
,以便攔截大多數「ssh 包裝器」建立的連線。例如,您可以指定
user@host
將假設您的意思是ssh user@host
ssh -J jump target
透過跳板主機連線gh cs ssh -c example-codespace
連線到 GitHub Codespacedoctl compute ssh example-droplet
連線到 DigitalOcean Dropletgcloud compute ssh
連線到 Google Cloud 執行個體ssh -i path_to_key_file user@host
使用金鑰檔案或憑證連線到主機
zed --dev-server-token 無法連線
有幾個可能導致失敗的原因
zed --dev-server-token
有執行,但沒有輸出任何內容。這可能是因為 Zed 背景程序在啟動時崩潰。請嘗試執行zed --dev-server-token XX --foreground
以查看任何輸出,並提交錯誤報告,以便我們可以一起偵錯。zed --dev-server-token
輸出「連線被拒絕」或「未經授權」之類的訊息,然後立即退出。這可能是因為從您的主機向 https://collab.zed.dev 發出 HTTP 請求時發生問題。您可以嘗試使用curl https://collab.zed.dev
進行偵錯,但我們發現有些情況下 curl 被允許,但其他二進制檔案不允許網路存取。zed --dev-server-token
輸出「Zed 已在執行中」。如果您正在編輯現有的伺服器,則再次點擊「連線」可能會成功,但如果沒有,您必須手動登入伺服器並終止 Zed 程序。
支援的平台
遠端電腦必須能夠執行 Zed。以下平台應該可以運作,但請注意,我們尚未完整測試每個 Linux 發行版
- macOS Catalina 或更新版本(Intel 或 Apple Silicon)
- Linux(x86_64 或 arm64,我們尚不支援 32 位元平台)。您必須安裝並全域使用 2.29 版(2019 年發布)或更新版本的
glibc
。 - 尚不支援 Windows。
設定和擴充功能
注意:隨著 Alpha 測試計畫的進行,這一點可能會有所變化。
您可以編輯遠端執行個體上的設定檔。為此,請在 ~/.config/zed
目錄中將新專案新增到您的伺服器。如果尚不存在 settings.json
檔案,您可以建立一個。
請注意,這最適用於配置語言伺服器,因為任何與使用者介面相關的設定都不適用。
如果您想安裝語言伺服器擴充功能,可以將其新增到 auto_installed_extensions
清單中。同樣地,您不需要這樣做就可以獲得語法高亮顯示(這由本地 Zed 處理)。
{
"auto_install_extensions": {
"java": true
},
}
已知限制
- 如果您選擇「手動連線」,則無法使用終端機或任務。
- 您無法在同一台電腦上同時以無頭模式和圖形介面模式執行
zed
。 - 您無法透過輸入
zed
命令從遠端終端機開啟檔案。
意見回饋
請加入 Zed Discord 中的 #remoting-feedback 頻道。