Vscode编辑器:python, C++和Java等项目开发的集大成者(yyds)
1. 寫在前面
已經好久沒有寫博客了,不知不覺有點手生, 現在開始恢復博客的更新頻率, 作為恢復的第一篇, 想從實習期間學到的新工具使用入手, 本篇文章雖然是Vscode掛名,但其實想介紹兩款神器: Vscode和Vim, 這兩個結合起來,開發效率會蹭蹭蹭!!!
VsCode的使用,這個是我這兩天剛接觸的,之前也接觸過, 寫Python項目的時候,就接觸過這個編輯器,但總感覺不如pycharm寫Python項目香, 還得安裝各種插件好復雜的樣子。 而最近在項目上需要閱讀一些較為龐大的推薦架構項目,全是cpp代碼,并且后期還要基于項目代碼做一些推薦架構開發工作,這就涉及到了寫C++項目。 一開始讀代碼感覺JetBrains的全家桶中Clion挺好,并且和pycharm一樣的風格,用起來也比較順手。 結果發現這玩意有個弊端,就是不同項目之間沒法跳轉, 對于項目代碼閱讀不友好。這里說的是不同項目之間,Clion在一個項目內部是可以和pycharm一樣跳的, 但一般我們下載一個cpp項目, 往往需要進行編譯,此時會把所用到的依賴都下載下來,這時候就往往有一些繼承性的項目被下載到。 我們讀的時候呢?可能需要好幾個項目一塊看,并且希望能互相跳轉, 因為有些變量的定義可能在繼承的父類項目里面。 這個在Clion里面沒找到好的方式,還得手動來回切換太麻煩。
于是就又接觸回VSCode, 花了一下午時間完成C++配置相關工作,并學習了一些提高開發效率的知識,發現還挺好用的,并且插件非常強大,可以只用這一款編譯器,安裝不同的插件就可以開發不同的項目,比如C++, Java(Scala)和Python項目, 并且還免費, 由于我目前最常用的語言就是這三種,涉及的項目也是這三種。 所以呢? 這里打算寫一篇文章來整理下如何用VsCode來寫這三種項目,關鍵是如何進行配置(后續再遇到其它語言的項目,繼續補充),因為VsCode本質上其實就是一個類似于記事本的編輯器, 如果沒有各種插件和環境輔助,那就只能寫寫代碼且無法運行,所以如果想開發各種項目,得事先需要配置才行。
由于我對這東西,也就剛摸索了一下午的時間, 所以學到了多少,整理多少,后面如果再學到新的操作,會在這篇文章繼續補充。 我也是參考了人家很多文章之后才敢總結,我下面的操作都是在Mac上親自走了一遍, 把坑趟完了。
大綱如下:
- VsCode基礎小常識(兩個快捷鍵, 連接遠程服務器,配置vim, 配置Git)
- VsCode寫C++項目的相關配置
- VsCode寫Python項目的相關配置
- VsCode寫Java項目的相關配置
- Vim的使用
Ok, let’s go!
2. VsCode必備的基礎知識
2.1 兩個必備快捷鍵
關于VsCode是啥,具體怎么安裝這里不會整理, 官網下載,常規的安裝軟件操作。下載下來之后,打開,是英文版,可以打開擴展, 搜Chinese安裝中文包, 界面如下圖:
先記住兩個快捷鍵:
這兩個快捷鍵建議記好。
另外, 這幾個常用的快捷鍵最好也知道:
2.2 安裝code
安裝后打開命名面板Command+Shift+P,搜索shell命令,點擊在PAth中安裝code命令,然后在上面菜單欄里面點擊終端,開啟一個新終端。 在這里面使用code命令打開文件或文件夾
code 項目地址或者文件名 # vscode 就會在新窗口中打開該項目或者文件如果你希望在已經打開的窗口打開文件,可以使用-r參數, 當然也可以菜單欄文件然后open項目,但感覺還是有些麻煩。
2.3 連接遠程服務器開發
這個也是需要掌握的必備技能了, 畢竟我們本地的機器啥配置自己清楚, 項目往往都放到服務器上, 而這個就保證了在自己電腦上遠程打開服務器的項目并開發。
這個需要安裝插件Remote-SSH, command+shift+x打開安裝。 安裝完了之后,左下角綠色的地方點擊,然后選擇connect to host,輸入IP和用戶名添加即可, 這樣就鏈接到了遠程服務器。
2.4 安裝Vim,使得開發更高效
如果vs code上安裝vim插件,那么寫代碼就可以采用vim的方式了, 各種便捷式命令使得開發更加高效。 插件搜vim安裝,然后點擊vim插件,就會看到vim插件的安裝說明, 在安裝說明里面把第一行在命令行執行:
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false然后需要在setting.json中把vim的配置復制進去即可, 這樣就變成了vim編輯器, 然后就能進行vim的各種騷操作了。setting.json文件在哪里? command+,進入設置, 然后上面搜索框輸入: Run Code Configuration, 在查找的結果中,如果發現setting.json編輯即可。
下面那段拷貝到setting.json中, 這樣就會發現進入了vim編輯模式。常用的vim命令還是要會的, 開發更加高效。 這個統一整理到最后面, 借著這次,順便也復習下Vim的使用, Linux下簡直神器。
2.5 配置Git
這個功能我目前沒用到, 因為我一般喜歡命令行直接Git相關操作,等具體用到了再補充。可以先參考這篇博文
ok, 幾個必備知識搞定之后, 就可以開發項目了, 其它功能等用到了可以現查。
2.6 幾個好用的插件記錄
這里記錄下常用的幾個好用插件(ctrl+shift+x 搜索安裝即可)
- Python extension for Visual Studio Code: python擴展包, 很多python代碼的增強功能,代碼分析,高亮,規范化
- Python Snippets: 內置了很多代碼片段
- Python Type Hint: 對類型提供自動提示功能
- LiveCode: 實時展示變量值,并檢測print進行打印
- Better Comments:寫注釋的插件, 支持# todo語法高量等
- autoDocstring: 自動生成函數注釋格式,寫函數注釋很方便
- Code Spell Checker: 單詞拼寫檢查
- vscode-icon: 不同的文件展示不同的圖標,方便快速識別文件類型
- Rainbow Brackets: 不同括號用不同顏色顯示
- codeTime: 監控和統計寫代碼的時間
- gitLens和githistory: 查看提交記錄,顯示提交作者信息和修改信息(必備)
- jupyter: 支持jupyter,快速測試代碼, ctrl+shift+p, 調出命令行,然后輸入jupyter 可以新建筆記本文件
3. VsCode寫C++項目的相關配置
這里記錄C++項目開發的相關配置, 參考這篇文章
先安裝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中創建一個新的hello文件夾代替。接下來,設置編譯器路徑, 交互面板下, 輸入c/c++選下面這個UI的:
采用默認即可,這里編譯器我選了個clang++, 也可以默認。這樣完事之后, .vscode目錄下,自動多一個c_cpp_properties.json文件, 用于使用vscode自帶的代碼提示工具,支持代碼跳轉等, 在這里面進行配置如下:
這個完事。
接下來, 需要配置一個tasks.json文件, 用于編譯c++文件。
這里面需要注意的是第一個label,后面的名字,要和下面這個配置文件名字最后一項一致。 可行性文件這個保存的是路徑位置。
接下來, 配置launch.json, 這個是用于使用vscode自帶的debug工具(左側的小蟲圖標)
這樣,配置工作完成, 就可以寫程序代碼了。 在該項目下面建立一個helloworld.cpp文件,寫入如下代碼:
然后command+shift+b就可以進行編譯,然后點擊右上角的執行按鈕即可運行程序了。注意,如果改變helloworld.cpp的位置,比如新建個src目錄, 把這個cpp放入src目錄,此時上面的task.json和launch.json相應位置需要做出改變。
如果想debug, 就點擊左邊的小蟲子圖標, 然后打斷點, 在左上角再點擊綠色箭頭,就進入debug模式了。
到這里為止, C++環境配置完成。
在運行過程中,我其實遇到了一個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 declarationvector<string> 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++環境配置完成。
有小伙伴反映說,有沒有Windows的配置啊? 下面這個是Windows的配置過程, 我在我電腦上走了一遍, 也整理下。參考的這篇文章
這樣, 編譯器安裝完成,下面在vscode進行配置,依然是上面那三個文件, 這里的布局模式和上面一樣:
這里和上面不一樣的,就是這三個配置文件內部的內容, 我這里的配置如下:
-
c_cpp_properites.json:
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "C:\\mingw64\\bin\\g++.exe","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "clang-x86"}],"version": 4 } -
task.json:
{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "g++.exe build active file","type": "shell","command": "C:\\mingw64\\bin\\g++.exe","args": ["-g","${file}", // 如果是多文件編程, 這里的${file}改成${filename}\\*.cpp"-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "C:\\mingw64\\bin"},"problemMatcher": ["$gcc"],"group": "build"},{"type": "shell","label": "C/C++: g++.exe build active file","command": "C:\\mingw64\\bin\\g++.exe","args": ["-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "C:\\mingw64\\bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true}}] } -
launch.json:
{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "g++.exe build and debug active file","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "g++.exe build active file"}] }
這里面比較關鍵的g++.exe和gdb.exe的路徑位置。 其他的采用默認就好。
4. VsCode寫Python項目的相關配置
寫大項目還是建議pycharm, yyds, 而如果寫一些小demon啥的, 可以使用vscode了,這個配置起來,寫代碼項目也非常方便, 配置Python環境, 相對簡單。
首先,按照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, 然后在里面建立虛擬環境,然后在vscode中指定,就可以寫了。 點擊左下角的Python3.8.2這里。
我這里有3個anaconda3的環境,我選Arkrec_env的這個, 這里面專門寫tf相關代碼的,也安裝好了大部分常用的包,點擊選擇即可。如果想寫pytorch代碼,我這里可以選擇第一個。
左下角就變了環境。
4. VsCode寫Java項目的相關配置
想運行Java項目, 也非常簡單,主要包括三步:
首先,就是安裝Extension Pack for Java插件, command+shift+x然后輸入這個插件名字, 點擊安裝。
這哥們其實在為我們安裝了6個Java必備插件:
安裝完畢之后.
第二步,下載并運行「JDK」。「JDK」的全稱是「Java Development Kit」,也就是中文所說的「Java開發套件」, 這個套件就是我們開發基于Java語言的軟件所需要的一個工具包。 話不多說,直接操作。
command+shift+p進入命令窗口,搜索Java Overview, 在右側Configure那里,點擊Configure Java Runtime,通過VSCode默認的「AdoptOpenJDK」下載入口,選擇我們需要下載的「JDK」和「JVM」的版本
點擊Download進入下載頁面。下載下這個pkg包之后,點擊安裝即可。這時候,Reload Window,然后點擊上面的Installed JDKs, 就會發現安裝的JDK路徑以及版本。
第三步,配置「Environment Variable」,也就是中文所說的「環境變量」。command+,進入設置頁面, 搜索中輸入javahome, 然后點擊
在這里嗎, 把上面的那個JDK的路徑復制過來即可。
這樣就可以愉快的寫Java代碼了, 測試下, command+shift+p, 在里面輸入Java: create Project,輸入項目名,在src文件夾中,選擇Run運行Java代碼,控制臺數據Hello World則為成功。
OK, Java配置完成。
這樣下來, 就把Vscode打造成了能同時開發Python, C++以及Java項目的神器了, 當然, Vscode還能做更多語言的項目開發, 等后面具體用到了再整理吧, 這玩意輔助上Vim, 項目學習起來也是非常香的哈哈。
5. Vim使用小記
由于目前我對Vim也是只了解到了些皮毛, 所以只整理些關于vim常用的操作,記好這些操作,在實際寫代碼中還是有很大幫助的。
5.1 三種模式切換
首先,三種模式切換必備:
- 從Normal模式到Insert模式(寫代碼模式),esc鍵從編輯模式退回到Normal模式
- 從Normal模式到命令行模式, ":", 反之esc, 命令行里面輸入:行號,直接跳到相應行
- 從Normal模式到visual模式, v鍵, 反之esc, 這個模式類似于我們用鼠標選中文本的操作。
- v: 字符可視化模式,此模式下目標文本的選擇是以字符為單位的,也就是說,該模式下要一個字符一個字符的選中要操作的文本。
- V: 行可視化模式,此模式化目標文本的選擇是以行為單位的,也就是說,該模式化可以一行一行的選中要操作的文本
- Ctrl+v: 塊可視化模式,該模式下可以選中文本中的一個矩形區域作為目標文本,以按下 Ctrl+v 位置作為矩形的一角,光標移動的終點位置作為它的對角
visual模式下面復制粘貼操作等都能使用
5.2 必備命令
vim最常用的就是Normal模式, 關于文本編輯,有一些命令需要記住,這些命令我把他分成了幾個維度來記憶。vim核心功能就是文本編輯,所以文本編輯的話,我們可以從增,刪,改,查,復制,粘貼幾個維度去學習一些常用的快捷鍵。
-
光標移動(查)
- 字符跳: 控制光標移動: h, j, k, l四個鍵分別是左, 下,上, 右, 這個是一個字符一個字符的跳, 多練習記住,就不用方向鍵了,熟悉之后賊高效。
- 單詞跳: w(word): 一個單詞一個單詞的跳 ,b(back word): 一個單詞一個單詞的往回跳, 在前面加num可以跳num個單詞, e跳到單詞的尾部
- 行尾行首: $跳動當前行尾, ^跳到當前行首
- 文件首尾: G 跳到文件末尾, gg跳到文件開頭, num+G跳到第num行
- 括號匹配: %跳到與之匹配的括號位置
-
增(insert)
- i/I鍵(Insert): 當前位置插入/行首插入
- a/A鍵(append): 當前位置的下一個位置/行尾插入
- o/O鍵(open a line): 下行插入/上行插入
-
刪(delete)
- dd(delete): 刪除當前行
- dj: 刪除當前行+下一行(中間還可以加num), d5j
- dk: 當前行+上一行(中間還可以加num),比如d3k
- dh: 刪除左邊字符, 可以加num
- dl: 刪除右邊字符, 可以加num
- daw: 刪除當前單詞
- x: 刪除當前字符
- D刪除光標到末尾的元素
-
改(change)
- caw: 修改當前單詞
- ct): 修改到)
-
查(find)
- fs: 查找當前行的s, 再使用,查找下一個s
- /查找內容進行查找單詞,n跳到下一個,:g/a1/a2/g將文本中所有的a1用a2替換。
-
復制(yank)和粘貼(past):
- y復制當前字符
- yy復制當前行
- yj: 復制當前行+下一行, 還可以加num, 其他方向鍵同理
- p粘貼
-
撤銷(undo)與反撤銷(redo):
- u撤銷一次, U撤銷對該行文本做的所有操作
- ctrl+r反撤銷一次
-
保存退出: q直接退出, wq保存退出, w保存但不退出, 后面加!強制的意思。"w!" 和 "wq!" 等類似的指令,通常用于對文件沒有寫權限的時候(顯示 readonly),但如果你是文件的所有者或者 root 用戶,就可以強制執行。
5.3 Vim多窗口編輯
編輯文件的時候,可能參考另一個文件,如果兩個文件切換比較繁瑣,可以Vim同時打開兩個文件。
命令行輸入:vs第二個文件目錄, 回車, 此時垂直切分成兩個窗口。 Ctrl+ww進行兩個窗口的切換。
5.4 Vim批量注釋
這個也是非常常用的,不操作鼠標,直接通過命令來
- 連續行注釋: :1,10s/^/#/g 1-10行行首加"#"注釋, ^表示行首, g表示執行替換時不詢問確認。如果是取消, 1,10s/^#//g
- c++和Java的注釋用到//, 此時需要轉義。 1,10s/^/\/\//g 注釋1-10行
是否顯示行號: set nu 與set nonu
set mouse=r,此時可以進行選中復制到粘貼板
目前我用到的Vim常用操作就是這些了, 如果再遇到新的,會繼續補充。
總結
以上是生活随笔為你收集整理的Vscode编辑器:python, C++和Java等项目开发的集大成者(yyds)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 35. 无重叠区间
- 下一篇: [Python从零到壹] 六十一.图像识