超算平臺(tái)入門教程——VS Code 安裝與遠(yuǎn)程連接
1.3 VS Code
1.3.1 簡(jiǎn)介
Visual Studio Code(簡(jiǎn)稱VS Code)是一款輕便但功能強(qiáng)大的源代碼編輯器,可以在你的電腦上運(yùn)行,并且支持Windows、macOS和Linux操作系統(tǒng)。它內(nèi)置了對(duì)JavaScript、TypeScript和Node.js的支持,并且有豐富的擴(kuò)展插件,適用于其他編程語言和運(yùn)行環(huán)境(如R、C/C++、C#、Java、Python、PHP、Go、.NET等)。
1.3.2 優(yōu)勢(shì)及不足
1.3.2.1 優(yōu)勢(shì)
開源免費(fèi):與整個(gè)社區(qū)深入合作,傾聽用戶在 GitHub 上的反饋,使 VS Code越做越好。
跨平臺(tái)支持:支持Windows、macOS和Linux操作系統(tǒng),允許開發(fā)者在不同的平臺(tái)上使用相同的工具,提高了跨平臺(tái)開發(fā)的便利性。
輕量級(jí)但強(qiáng)大:輕量級(jí)源代碼編輯器,啟動(dòng)迅速,占用較少系統(tǒng)資源,但功能強(qiáng)大,包括智能代碼提示、調(diào)試支持、Git集成等。
豐富的擴(kuò)展:擁有龐大的擴(kuò)展市場(chǎng),用戶可以根據(jù)自己的需求安裝插件和擴(kuò)展,涵蓋了各種編程語言和工具。
內(nèi)置支持:內(nèi)置了對(duì)多種編程語言的支持,如JavaScript、TypeScript和Node.js,無需額外的配置即可基于這些語言進(jìn)行開發(fā)。
集成的調(diào)試器:內(nèi)置調(diào)試器使得識(shí)別和修復(fù)問題變得更加容易,提高了開發(fā)效率。
版本控制支持:與版本控制系統(tǒng)(如Git)深度集成,使團(tuán)隊(duì)協(xié)作和源代碼管理更加順暢。
高度可定制:允許用戶高度自定義其界面和功能,包括主題、鍵盤快捷鍵和代碼片段等。
1.3.2.2 不足
功能限制:可能不如一些其他集成開發(fā)環(huán)境(IDE)如RStudio或Visual Studio功能豐富。
界面和自定義性:一些用戶可能會(huì)覺得軟件界面不夠直觀,或者與其他IDE相比,可自定義性不夠強(qiáng)大。
不適用于某些開發(fā)類型:對(duì)于某些特定類型的開發(fā),如移動(dòng)應(yīng)用程序開發(fā)或游戲開發(fā),VS Code可能不如其他工具更適用。
性能問題:在處理大型代碼庫(kù)或項(xiàng)目時(shí)可能會(huì)遇到性能問題,可能會(huì)導(dǎo)致編輯和操作速度變慢。
部分功能需要插件:某些功能可能不包含在基礎(chǔ)版本中,需要安裝額外插件才能使用。
1.3.3 安裝
下載安裝程序:在 點(diǎn)擊Download for Windows后自動(dòng)開始下載當(dāng)前最新的穩(wěn)定版本。

運(yùn)行安裝程序:雙擊下載的安裝程序(如:VSCodeUserSetup-x64-1.82.2.exe)進(jìn)入安裝引導(dǎo)。若出現(xiàn)"當(dāng)前無法訪問>SmartScreen"的彈窗,是因?yàn)橐恍┨厥庠驘o法訪問Windows Defender SmartScreen,如無網(wǎng)絡(luò)連接等,導(dǎo)致Windows無法判斷該安裝的安全性。所以彈出提示窗口讓用戶手動(dòng)判斷是否運(yùn)行該應(yīng)用。由于該軟件安裝包我們是從官網(wǎng)下載的,可以保證其安全性,所以我們點(diǎn)擊運(yùn)行即可。注意:若此時(shí)系統(tǒng)中已有VS Code正在運(yùn)行,則會(huì)提示用戶先退出VS Code軟件。

選擇目標(biāo)位置:可以自定義軟件的安裝位置,但需要注意的是,當(dāng)目前計(jì)算機(jī)上沒有安裝VS Code時(shí)才會(huì)出現(xiàn)此窗口,若檢測(cè)到已經(jīng)安裝了該軟件,則會(huì)默認(rèn)安裝到現(xiàn)有VS Code的安裝路徑,類似于升級(jí)該軟件,此時(shí)不會(huì)出現(xiàn)此窗口而是直接進(jìn)入到下一步。

許可協(xié)議:軟件許可協(xié)議,點(diǎn)選我同意此協(xié)議,然后點(diǎn)擊下一步。

選擇附加任務(wù):選擇需要程序在安裝過程中需要執(zhí)行的額外任務(wù),這里建議取消勾選將Code注冊(cè)為受支持的文件類型的編輯器,其其他選項(xiàng)都勾選上。

將“通過code打開”操作添加到Windows資源管理器文件(目錄)上下文菜單:若勾選這兩個(gè)選項(xiàng),在Windows的資源管理器中選中某個(gè)文件(夾)時(shí)并按鼠標(biāo)右鍵,可以看到"通過code打開"這個(gè)選項(xiàng)。
將code注冊(cè)為受支持的文件類型的編輯器:默認(rèn)使用VS Code打開諸如.txt,.py等文本類型的文件,一般建議不勾選
添加到PATH(重啟后生效):建議勾選,這樣可以使用控制臺(tái)(如Windows的cmd)打開VS Code 了
準(zhǔn)備安裝:列出用戶自定義的一些可選擇選項(xiàng)以供用戶核對(duì)。根據(jù)計(jì)算機(jī)上是否已安裝VS Code軟件,會(huì)有以下兩種不同界面。確認(rèn)信息無誤后點(diǎn)擊安裝即正式進(jìn)入安裝環(huán)節(jié)。

安裝完成:點(diǎn)擊“完成”即可,用戶還可以選擇是否立即運(yùn)行剛剛安裝的VS Code軟件。

運(yùn)行已安裝好的VS Code:運(yùn)行VS Code后需要注意右下角的提示信息,里面有軟件給出的建議等。

1.3.4 連接到遠(yuǎn)程計(jì)算機(jī)
VS Code可以通過SSH或隧道等方式連接到遠(yuǎn)程計(jì)算機(jī),我們這里只介紹SSH連接這一種方式。
VS Code Server是一個(gè)可以在遠(yuǎn)程機(jī)器(計(jì)算機(jī))上運(yùn)行的服務(wù) ,VS Code的遠(yuǎn)程開發(fā)擴(kuò)展讓你在 Windows Subsystem for Linux(WSL)、通過 SSH 遠(yuǎn)程訪問的遠(yuǎn)程機(jī)器以及直接從 VS Code 中的開發(fā)容器中工作。這些擴(kuò)展在遠(yuǎn)程環(huán)境上安裝了一個(gè)服務(wù)器(server),允許本地的 VS Code 與遠(yuǎn)程源代碼和運(yùn)行時(shí)無縫交互。進(jìn)行遠(yuǎn)程服務(wù)器連接前需要在VS Code中安裝remote - SSH、remote - Tunnels或WSL等插件。

VS Code Server的應(yīng)用場(chǎng)景有:
在SSH支持可能受到限制的遠(yuǎn)程計(jì)算機(jī)上開發(fā),或需要基于web的訪問。
在不支持安裝VS Code桌面的機(jī)器上開發(fā),如平板電腦或Chromebook(網(wǎng)絡(luò)筆記本)。
體驗(yàn)所有代碼都在瀏覽器沙箱中執(zhí)行的客戶端安全優(yōu)勢(shì)。
1.3.4.1 VS Code Server在線安裝
VS Code Server是遠(yuǎn)程開發(fā)擴(kuò)展的一個(gè)組件,由VS Code客戶端管理。當(dāng)它連接到終端時(shí),它會(huì)由VS Code自動(dòng)安裝和更新,如果單獨(dú)安裝,可能會(huì)很快過時(shí)。
插件安裝:通過SSH連接到遠(yuǎn)程計(jì)算機(jī)需要第三方插件的支持,所以我們需要在VS code中安裝remote - SSH插件。

打開遠(yuǎn)程窗口:點(diǎn)擊界面左下角的><圖標(biāo),即連接到主機(jī)按鈕。

選擇連接方式:選擇選項(xiàng)中的連接到主機(jī)... remote - SSH。

指定主機(jī)位置:當(dāng)VS Code中沒有已配置好的主機(jī),或需要連接新的主機(jī)時(shí),直接輸入主機(jī)地址(用戶名@ip地址)或選擇配置 SSH 主機(jī),通過編輯配置文件以指定主機(jī)位置。

選擇系統(tǒng):選擇遠(yuǎn)程計(jì)算機(jī)的操作系統(tǒng)(通常為Linux)。

確認(rèn)指紋:若是首次連接到該遠(yuǎn)程計(jì)算機(jī),VS Code會(huì)提示遠(yuǎn)程計(jì)算機(jī)的Key信息,點(diǎn)擊繼續(xù)即可。

用戶驗(yàn)證:輸入登陸賬戶在遠(yuǎn)程計(jì)算機(jī)登陸需要的密碼(密鑰)信息。

設(shè)置主機(jī):若VS Code檢測(cè)到遠(yuǎn)程計(jì)算機(jī)沒有安裝與其版本匹配的VS Code Server,則會(huì)自動(dòng)下載。下載通常有兩種情況,若遠(yuǎn)程計(jì)算機(jī)已連接網(wǎng)絡(luò),則會(huì)在遠(yuǎn)程主機(jī)上下載;若是遠(yuǎn)程計(jì)算機(jī)沒有網(wǎng)絡(luò)條件,則會(huì)在本地計(jì)算機(jī)下載VS Code Server,然后通過scp復(fù)制到遠(yuǎn)程主機(jī)進(jìn)行解壓部署。

成功連接:VS Code Server正常安裝后VS Code則能成功連接到遠(yuǎn)程計(jì)算機(jī),此時(shí)我們則可以在VS Code中與遠(yuǎn)程計(jì)算機(jī)進(jìn)行文件和命令的交互。

1.3.4.2 離線安裝
離線安裝有以下兩種方式:
一、從其他遠(yuǎn)程主機(jī)復(fù)制
若是我們有多個(gè)遠(yuǎn)程主機(jī),而其中一些遠(yuǎn)程主機(jī)上已經(jīng)安裝與VS Code匹配的最新版本的VS Code Server,我們可以相應(yīng)的文件直接打包復(fù)制到需要安裝VS Code Server的遠(yuǎn)程主機(jī),而不需要VS Code連接后再自動(dòng)下載安裝。
VS code版本:在VS Code界面的頂部工具欄最右側(cè)找到”幫助“選項(xiàng),然后點(diǎn)擊彈出菜單欄中的關(guān)于。

版本id:VS Code Server與VS Code都是一一對(duì)應(yīng)的關(guān)系,所以我們找到版本信息界面后復(fù)制版本id(commit id)。

VS Code Server版本:查看遠(yuǎn)程(Linux)計(jì)算機(jī)上是否已安裝與VS Code客戶端版本相匹配的VS Code Server。
## 首先確認(rèn)遠(yuǎn)程服務(wù)器上已安裝相應(yīng)版本的VS Code Server
ls ${HOME}/.vscode-server/bin/abd2f3db4bdb28f9e95536dfa84d8479f1eb312d
打包文件夾:將以commit id命名的文件夾進(jìn)行打包壓縮。
## 將以commit id命名的文件夾進(jìn)行打包壓縮
cd ${HOME}/.vscode-server/bin
tar -czvf abd2f3.tar.gz abd2f3db4bdb28f9e95536dfa84d8479f1eb312d
創(chuàng)建文件夾:在需要安裝VS Code Server的遠(yuǎn)程計(jì)算機(jī)上創(chuàng)建需要的bin目錄。
## 創(chuàng)建文件夾
mkdir -p ${HOME}/.vscode-server/bin
復(fù)制解壓:把上述壓縮文件復(fù)制到需要安裝VS Code Server的遠(yuǎn)程計(jì)算機(jī)的${HOME}/.vscode-server/bin文件夾下,然后解壓。
## 在bin目錄下解壓文件
tar -xzvf abd2f3.tar.gz
遠(yuǎn)程連接:按照 1.3.4.1的步驟連接到遠(yuǎn)程計(jì)算機(jī)。
配置:VS Code對(duì)遠(yuǎn)程的Server進(jìn)行進(jìn)一步配置。
二、下載VS Code Server源文件
下載源文件:根據(jù)上面查詢到的目前VS Code的版本,將鏈接:https://update.code.visualstudio.com/commit:commit_id/server-linux-x64/stable中的commit_id替換為當(dāng)前版本的commit id(如:https://update.code.visualstudio.com/commit:abd2f3db4bdb28f9e95536dfa84d8479f1eb312d/server-linux-x64/stable),然后粘貼到瀏覽器中下載該文件。
按照1.3.4.1中的步驟將文件復(fù)制到需要安裝VS Code Server的遠(yuǎn)程計(jì)算機(jī)上,解壓后用VS Code
?? 轉(zhuǎn)載聲明:感謝您對(duì)文章內(nèi)容的認(rèn)可,轉(zhuǎn)載請(qǐng)聯(lián)系微信公眾號(hào)“房子下面一頭豬”獲得授權(quán),轉(zhuǎn)載后請(qǐng)?jiān)谛涯课恢脴?biāo)明來源,且禁止聲明原創(chuàng)。

供稿:李偉寧
編輯:張嘉雯
校對(duì):李偉寧

團(tuán)隊(duì)其他公眾平臺(tái):
Bilibili | 房子下面一頭豬
知乎 | 房子下面一頭豬(https://www.zhihu.com/people/mang-guo-c-60-10)
微信公眾號(hào) | 房子下面一頭豬(https://github.com/CAU-TeamLiuJF)??
