項目開發(fā)神器VsCode配置指南!(含C++、Python、Java環(huán)境配置)
作者:吳忠強
轉自:Datawhale
本篇文章雖然是VsCode掛名,但其實介紹了兩款神器: Vscode和Vim, 這兩個結合起來,開發(fā)效率蹭蹭蹭!!!
之前接觸過VsCode但很少用。總感覺寫Python不如pycharm香,還得安裝各種插件。但最近實習中,發(fā)現(xiàn)在項目上有一些較為龐大的推薦架構項目,全是c++代碼,后期還要基于項目代碼做架構開發(fā),這就涉及到了寫C++項目,而且好幾個項目一塊看,還要滿足互相跳轉,因為有些變量的定義可能在繼承的父類項目里面。
于是就又接觸回VSCode, 發(fā)現(xiàn)還挺好用,并且插件強大,只用VSCode這一款編譯器,安裝不同的插件就可以開發(fā)不同的項目,比如C++, Java(Scala)和Python項目, 并且還免費。這篇文章來整理下如何用VsCode來寫這三種項目,關鍵是如何進行配置。因為VsCode本質上是一個類似于記事本的編輯器,需要各種插件和環(huán)境輔助運行。
大綱如下:
VsCode基礎小常識(快捷鍵,連接服務器,配置vim與Git)
VsCode寫C++、Python與Java項目的相關配置
Vim的使用

▲這就滿足!大家有想看的內容都可以留言
Ok, let's go!
01 VsCode必備的基礎知識
1.1 兩個必備快捷鍵
關于VsCode是啥,安裝就是常規(guī)的安裝軟件操作。下載下來之后,打開,是英文版,可以打開擴展, 搜Chinese安裝中文包, 界面如下圖:
先記住兩個快捷鍵:
command+shift+p: 這個是打開命令交互面板, 在命令面板中可以輸入命令進行搜索(中英文都可以),然后執(zhí)行。命名面板中可以執(zhí)行各種命令,包括編輯器自帶的功能和插件提供的功能。
comand+,: 進入設置,這里可以進行用戶和工作區(qū)的設置,像什么代碼風格,字體風格各種設置都在這里
這兩個快捷鍵建議記好。
另外, 這幾個常用的快捷鍵最好也知道:
1.2 安裝code
安裝后打開命名面板Command+Shift+P,搜索shell命令,點擊在PAth中安裝code命令,然后在上面菜單欄里面點擊終端,開啟一個新終端。在這里面使用code命令打開文件或文件夾
code?項目地址或者文件名??#?vscode?就會在新窗口中打開該項目或者文件
如果你希望在已經(jīng)打開的窗口打開文件,可以使用-r參數(shù), 當然也可以菜單欄文件然后open項目,但感覺還是有些麻煩。
1.3 連接遠程服務器開發(fā)
這個也是需要掌握的必備技能了, 畢竟我們本地的機器啥配置自己清楚, 項目往往都放到服務器上, 而這個就保證了在自己電腦上遠程打開服務器的項目并開發(fā)。
這個需要安裝插件Remote-SSH, command+shift+x打開安裝。安裝完了之后,左下角綠色的地方點擊,然后選擇connect to host,輸入IP和用戶名添加即可, 這樣就鏈接到了遠程服務器。
1.4 安裝Vim,使得開發(fā)更高效
如果vs code上安裝vim插件,那么寫代碼就可以采用vim的方式了, 各種便捷式命令使得開發(fā)更加高效。插件搜vim安裝,然后點擊vim插件,就會看到vim插件的安裝說明, 在安裝說明里面把第一行在命令行執(zhí)行:
defaults?write?com.microsoft.VSCode?ApplePressAndHoldEnabled?-bool?false
然后需要在setting.json中把vim的配置復制進去即可, 這樣就變成了vim編輯器, 然后就能進行vim的各種騷操作了。setting.json文件在哪里??command+,進入設置, 然后上面搜索框輸入: Run Code Configuration, 在查找的結果中,如果發(fā)現(xiàn)setting.json編輯即可。
下面那段拷貝到setting.json中, 這樣就會發(fā)現(xiàn)進入了vim編輯模式。常用的vim命令還是要會的, 開發(fā)更加高效。這個統(tǒng)一整理到最后面, 借著這次,順便也復習下Vim的使用, Linux下簡直神器。
1.5 配置Git
這個功能我目前沒用到, 因為我一般喜歡命令行直接Git相關操作,等具體用到了再補充。可以先參考https://blog.csdn.net/weixin_42280089/article/details/88937175
ok, 幾個必備知識搞定之后, 就可以開發(fā)項目了, 其它功能等用到了可以現(xiàn)查。
02 VsCode寫三大編程項目的相關配置
2.1 VsCode寫C++項目的配置
這里記錄C++項目開發(fā)的相關配置,先安裝3個插件:
C/C++ C/C++ Extension Pack CodeLLDB
然后檢查下是否按照了clang/clang++ 編譯器
clang++?-v
如果未安裝,請前往 app store 下載 xcode安裝。
準備工作完成,然后打開終端輸入下面命令:
mkdir?projects
cd?projects
mkdir?hello
cd?hello
code?.
#?上述步驟也可以在vscode中創(chuàng)建一個新的hello文件夾代替。
接下來,設置編譯器路徑, 交互面板下, 輸入c/c++選下面這個UI的:
采用默認即可,這里編譯器我選了個clang++, 也可以默認。這樣完事之后, .vscode目錄下,自動多一個c_cpp_properties.json文件, 用于使用vscode自帶的代碼提示工具,支持代碼跳轉等, 在這里面進行配置如下:
{
????"configurations":?[
????????{
????????????"name":?"Mac",
????????????"includePath":?[
????????????????"${workspaceFolder}/**"
????????????],
????????????"defines":?[],
????????????"macFrameworkPath":?[],
????????????"compilerPath":?"/usr/bin/clang++",
????????????"cStandard":?"gnu17",
????????????"intelliSenseMode":?"macos-gcc-x64",
????????????"cppStandard":?"c++11"
????????}
????],
????"version":?4
}
這個完事。
接下來, 需要配置一個tasks.json文件, 用于編譯c++文件。
交互面板,輸入task 選擇tasks: Configure Default Build Task 選擇Create tasks.json file from template 選擇Others, 會在.vscode下面自動創(chuàng)建tasks.json,在編輯器中打開 進行如下配置
{
????"version":?"2.0.0",
????"tasks":?[
??????{
????????"label":?"Build?with?Clang",?//這個任務的名字在launch.json最后一項配置
????????"type":?"shell",
????????"command":?"clang++",
????????"args":?[
??????????"-std=c++17",
??????????"-stdlib=libc++",
??????????"-g",
??????????//?生成調試信息,GUN可使用該參數(shù)
??????????"${file}",
??????????//?file指正在打開的文件
??????????"-o",
??????????//?生成可執(zhí)行文件
??????????"${fileDirname}/${fileBasenameNoExtension}"
??????????//?fileDirname指正在打開的文件所在的文件夾
??????????//?fileBasenammeNoExtension指沒有擴展名的文件,unix中可執(zhí)行文件屬于此類
????????],
????????"options":?{
??????????"cwd":?"${workspaceFolder}"
????????},
????????"problemMatcher":?["$gcc"],
????????"group":?{
??????????"kind":?"build",
??????????"isDefault":?true
????????}
??????}
????]
??}
??
這里面需要注意的是第一個label,后面的名字,要和下面這個配置文件名字最后一項保持一致。可行性文件這個保存的是路徑位置。
接下來, 配置launch.json, 這個是用于使用vscode自帶的debug工具(左側的小蟲圖標)
交互面板下輸入launch,選擇Debug:Open launch.json 選擇LLDB 在.vscode下自動生成launch.json文件, 寫入配置
{
????//?使用 IntelliSense 了解相關屬性。?
????//?懸停以查看現(xiàn)有屬性的描述。
????//?欲了解更多信息,請訪問:?https://go.microsoft.com/fwlink/?linkid=830387
????"version":?"0.2.0",
????"configurations":?[
????????
????????{
????????????"name":?"Debug",
????????????"type":?"lldb",
????????????"request":?"launch",
????????????"program":?"${workspaceFolder}/${fileBasenameNoExtension}",
????????????"args":?[],
????????????"cwd":?"${workspaceFolder}",
????????????"preLaunchTask":?"Build?with?Clang"
????????}
????]
}
這樣,配置工作完成, 就可以寫程序代碼了。在該項目下面建立一個helloworld.cpp文件,寫入如下代碼:
然后command+shift+b就可以進行編譯,然后點擊右上角的執(zhí)行按鈕即可運行程序了。注意,如果改變helloworld.cpp的位置,比如新建個src目錄, 把這個cpp放入src目錄,此時上面的task.json和launch.json相應位置需要做出改變。
#?task.json
//?生成可執(zhí)行文件
"${fileDirname}/src/${fileBasenameNoExtension}"
#?launch.json
"program":?"${workspaceFolder}/src/${fileBasenameNoExtension}",
如果想debug, 就點擊左邊的小蟲子圖標, 然后打斷點, 在左上角再點擊綠色箭頭,就進入debug模式了。
到這里為止, C++環(huán)境配置完成。
在運行過程中,我其實遇到了一個c++11的bug:
[Running]?cd?"/Users/bytedance/projects/hello/"?&&?g++?main.cpp?-o?main?&&?"/Users/bytedance/projects/hello/"main
main.cpp:9:21:?error:?expected?';'?at?end?of?declaration
??vector?msg?{"Hello",?"C++",?"World",?"from",?"VS?Code",?"and?the?C++?extension!"};
????????????????????^
????????????????????;
main.cpp:11:27:?warning:?range-based?for?loop?is?a?C++11?extension?[-Wc++11-extensions]
??for?(const?string&?word?:?msg)
??????????????????????????^
1?warning?and?1?error?generated.
這個卡了我好久其實, 上面文章中是沒有寫的, 這個原因解決方法可能有兩個:
看看插件里面是否安裝了C/C++ Clang Command Adapter, 有的話卸載掉, 這個對我這個沒有用 進設置,搜Run Code Configuration, 打開setting.json文件, 那里面會有各類語言的執(zhí)行map, 在里面找到cpp, 把后面的value改成: "cpp": cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt, 我用了這個方法解決的
至此, c++部分結束。
2.2 VsCode寫Python的配置
寫大項目還是建議pycharm, yyds, 而如果寫一些小demon啥的, 可以使用vscode了,這個配置起來,寫代碼項目也非常方便, 配置Python環(huán)境, 相對簡單。
首先,按照Python插件, command+shift+x, 然后搜Python即可安裝插件。然后命令行輸入命令:
mkdir?projects
cd?projects
mkdir?hello
cd?hello
code?.
這時候會建立一個hello目錄,如果提示code沒有定義, 先安裝code, 具體方法是command+shift+p, 然后在里面搜shell,就會顯示這條命令,點擊安裝即可。
在hello里面,建立hello.py文件,這時候基于擴展左下角就會顯示所用的Python版本, 這時候,其實就能簡單運行.py文件了。比如打印個hello world。
但是如何建立大項目,寫更加復雜的代碼呢?這里可以安裝anaconda, 然后在里面建立虛擬環(huán)境,然后在vscode中指定,就可以寫了。?點擊左下角的Python3.8.2這里。
我這里有3個anaconda3的環(huán)境,我選Arkrec_env的這個, 這里面專門寫tf相關代碼的,也安裝好了大部分常用的包,點擊選擇即可。如果想寫pytorch代碼,我這里可以選擇第一個。
左下角就變了環(huán)境。
2.3 VsCode寫Java項目的配置
想運行Java項目, 也非常簡單,主要包括三步:
下載并運行「Extension Pack for Java」; 下載并運行「JDK」; 配置「Environment Variable」
第一步,安裝Extension Pack for Java插件, command+shift+x然后輸入這個插件名字, 點擊安裝。

這哥們其實在為我們安裝了6個Java必備插件:
Language Support for Java(TM) by Red Hat: 運行Java代碼 Debugger for Java: 調試 Java Test Runner: 單元測試 Maven for Java: 在Java環(huán)境下構建應用程序的軟件
安裝完畢之后.
第二步,下載并運行「JDK」。「JDK」的全稱是「Java Development Kit」,也就是中文所說的「Java開發(fā)套件」, 這個套件就是我們開發(fā)基于Java語言的軟件所需要的一個工具包。?話不多說,直接操作。
command+shift+p進入命令窗口,搜索Java Overview, 在右側Configure那里,點擊Configure Java Runtime,通過VSCode默認的「AdoptOpenJDK」下載入口,選擇我們需要下載的「JDK」和「JVM」的版本
點擊Download進入下載頁面。下載下這個pkg包之后,點擊安裝即可。這時候,Reload Window,然后點擊上面的Installed JDKs, 就會發(fā)現(xiàn)安裝的JDK路徑以及版本。

第三步,配置「Environment Variable」,也就是中文所說的「環(huán)境變量」。command+,進入設置頁面, 搜索中輸入javahome, 然后點擊
在這里, 把上面的那個JDK的路徑復制過來即可。
這樣就可以愉快的寫Java代碼了, 測試下, command+shift+p, 在里面輸入Java: create Project,輸入項目名,在src文件夾中,選擇Run運行Java代碼,控制臺數(shù)據(jù)Hello World則為成功。
OK, Java配置完成。
這樣下來, 就把Vscode打造成了能同時開發(fā)Python, C++以及Java項目的神器了, 當然, Vscode還能做更多語言的項目開發(fā), 等后面具體用到了再整理吧, 這玩意輔助上Vim, 項目學習起來也是非常香的哈哈。
03?Vim使用小記
由于目前我對Vim也是只了解到了些皮毛, 所以只整理些關于vim常用的操作。
3.1 三種模式切換
首先,三種模式切換必備:
從Normal模式到Insert模式(寫代碼模式)
i/a鍵:當前位置插入A鍵: 行尾插入I鍵: 行前插入O鍵: 上行插入o鍵: 下行插入
反之jj鍵或者esc鍵從Normal模式到命令行模式,
":", 反之esc, 命令行里面輸入:行號,直接跳到相應行從Normal模式到visual模式,
v鍵, 反之esc, 這個模式類似于我們用鼠標選中文本的操作。v: 字符可視化模式,此模式下目標文本的選擇是以字符為單位的,也就是說,該模式下要一個字符一個字符的選中要操作的文本。V: 行可視化模式,此模式化目標文本的選擇是以行為單位的,也就是說,該模式化可以一行一行的選中要操作的文本Ctrl+v: 塊可視化模式,該模式下可以選中文本中的一個矩形區(qū)域作為目標文本,以按下 Ctrl+v 位置作為矩形的一角,光標移動的終點位置作為它的對角
visual模式下面復制粘貼操作等都能使用。
3.2 必備命令
剛開始進入vim的時候是Normal模式, 這個模式下是不能寫代碼的, 在這個模式下需要記住的操作:
光標移動 字符跳:控制光標移動: H, J, K, l四個鍵分別是左, 下,上, 右, 這個是一個字符一個字符的跳單詞跳: w: 一個單詞一個單詞的跳 ,b: 一個單詞一個單詞的往回跳, 在前面加n可以跳n個單詞。行尾行首: $跳動當前行尾,^跳到當前行首文件首尾: G跳到文件末尾,gg跳到文件開頭,nG跳到第n行括號匹配: %跳到與之匹配的括號位置刪除文本: x刪除當前字符,dd刪除當前行,cc鍵刪除當前行并自動進入Insert模式,ndd刪除當前及后面的n行,D刪除光標到末尾的元素,:a,bd刪除a-b行文本內容查找和替換: /查找內容進行查找,:g/a1/a2/g將文本中所有的a1用a2替換。復制和粘貼: y復制當前字符,yy復制當前行,nyy復制n行,p粘貼撤銷與反撤銷: u撤銷一次,U撤銷對該行文本做的所有操作,ctrl+r反撤銷一次保存退出: q直接退出,wq保存退出,w保存但不退出, 后面加!強制的意思。"w!"和"wq!"等類似的指令,通常用于對文件沒有寫權限的時候(顯示 readonly),但如果你是文件的所有者或者 root 用戶,就可以強制執(zhí)行。
3.3 Vim多窗口編輯
編輯文件的時候,可能參考另一個文件,如果兩個文件切換比較繁瑣,可以Vim同時打開兩個文件。
命令行輸入:vs第二個文件目錄, 回車, 此時垂直切分成兩個窗口。Ctrl+ww進行兩個窗口的切換。
3.4 Vim批量注釋
這個也是非常常用的,不操作鼠標,直接通過命令來
連續(xù)行注釋: :1,10s/^/#/g1-10行行首加"#"注釋,^表示行首,g表示執(zhí)行替換時不詢問確認。如果是取消,1,10s/^#//gc++和Java的注釋用到//, 此時需要轉義。 1,10s/^/\/\//g?注釋1-10行
是否顯示行號: set nu 與set nonu
目前我用到的Vim常用操作就是這些了, 如果再遇到新的,會繼續(xù)補充。
往期精彩:
