本文主要介紹vscode上使用cmake作爲編譯配置工具的C/C++開發環境配置。
包括提高效率的插件、代碼風格規範化的相關設置。
一 必備插件
1 C/C++
微軟官方插件,提供對C/C++語言的支持,比如代碼提示、調試。
該插件有自己的配置界面,通過CMD/Ctrl+Shift+P
輸入C/C++: Edit Configurations(UI)
進行配置。如下圖:
常規設置包括(一般無需改動):
- 編譯器路徑設置
- 編譯器參數(這個一般通過CMakeLists.txt或者編譯腳本進行配置)
- 頭文件路徑(系統頭文件路徑是默認包含的,可以在這裏添加其他庫的路徑)
- C/C++標準(筆者目前用的最多的還是c99,c++11)
針對不同平臺可以有不同設置,如果使用多個平臺的電腦將會是很有用的。
2 CMake Tools
微軟官方插件,提供對CMake的支持。
比如最常用的設置cmake的編譯目錄(cmake.buildDirectory
,默認爲:${workspaceFolder}/build
)。
3 CMake
這個插件也包含在CMake Tools中,提供對CMake語法支持、代碼高亮,提高編寫效率。
二 推薦插件
1 C/C++ Include Guard
提供頭文件保護宏自動插入功能,保護宏的格式可以進行一些配置。具體配置在推薦配置中介紹。
2 cpplint
依賴於cpplint可執行文件,Ubuntu/MacOS下可以通過命令安裝:
pip install cpplint
Windows下可以安裝到任意目錄,隨後將其路徑添加到環境變量即可,也可以通過cpplint插件的配置cpplint.cpplintPath
進行設置。
3 Better Comments
提供不同語言的代碼註釋自動生成及高亮功能,在c函數前一行輸入/**
回車即可自動插入規範的c接口函數塊註釋,如下圖:
註釋務必務實,不要過於花哨,編寫規範的註釋是提升代碼顏值很重要的一部分;
不規範的註釋不如沒有註釋。
三 推薦配置
1 C/C++插件
推薦使用如下配置:
- 自動排序include
- 使用Google的coding style作爲代碼格式化的標準
配置內容如下:
{
"C_Cpp.clang_format_fallbackStyle": "Google",
"C_Cpp.clang_format_sortIncludes": true,
}
2 CMake Tools插件
CMake Tools默認在編輯時自動配置,但是這樣實在過於惱人,建議關閉,修改爲在打開項目時配置一次:
{
"cmake.configureOnEdit": false,
"cmake.configureOnOpen": true,
}
3 C/C++ Include Guard插件
對於頭文件保護宏的格式,Google的coding style的要求所有頭文件都應該使用#define
來防止頭文件被多重包含, 命名格式應當是: <PROJECT>_<PATH>_<FILE>_H_。
比如foo/bar/baz.h可按如下方式保護:
#ifndef FOO_BAR_BAZ_H_
#define FOO_BAR_BAZ_H_
...
#endif // FOO_BAR_BAZ_H_
通過如下設置即可滿足此規範要求:
{
"C/C++ Include Guard.Comment Style": "Line",
"C/C++ Include Guard.Macro Type": "Filepath",
"C/C++ Include Guard.Remove Extension": false,
"C/C++ Include Guard.Suffix": "_",
}
4 針對C/C++語言和代碼風格的設置
設置c/c++的縮進,並在保存時自動格式化:
{
"[c]": {
"editor.formatOnSave": true,
"editor.quickSuggestions": {
"comments": false,
"other": true,
"strings": false
},
"editor.tabSize": 2
},
"[cpp]": {
"editor.formatOnSave": true,
"editor.tabSize": 2
},
}
5 文件格式
文末保持一行空行,並且刪除行末的空白字符:
{
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true,
}
如果同時在windows和linux下開發,可以設置"files.eol",把換行符也固定爲"\n"。
四 常用操作
1 重構代碼
光標放到在函數名、參數名上按F2
重構變量名。
如果沒有安裝重構工具rope
,按提示安裝即可。
重構前,也可以先用Shift+F12
查看所有引用。
重構是很重要的,所以多提幾次。
2 CMake配置
在修改完CMakeLists.txt後,可以通過CMD/Ctrl+Shift+P
打開命令面板,選擇CMake Configure
手動執行配置;執行編譯則選擇CMake: Build
。
如果CMakeLists.txt不在項目的根目錄,執行CMake Configure
後會出現如下提示:
選擇創建則在項目根目錄創建一個新的CMakeLists.txt,或者選擇查找選擇CMakeLists.txt所在目錄。
到目前(1.52.1版本)爲止,在ubuntu上,vscode使用cmake感覺問題不是很大,只是有時候配置不更新,此時可以直接刪除項目根目錄下的build目錄,重新生成一下。
3 在聲明、定義之間跳轉
一般使用CMD/Ctrl+鼠標
單擊函數名即可,但是還有指定的快捷鍵,不同系統可能略有差異,可按需記憶。
4 觸發參數提示
在調用函數的時候,vscode會自動彈出參數提示,可以通過ESC
關閉,關閉後可以通過快捷鍵Ctrl+Shift+Space
喚出。
但是這個快捷鍵可能會被輸入法佔用,可以修改綁定快捷鍵,通過快捷鍵Ctrl+K Ctrl+S
打開快捷鍵設置窗口,搜索editor.action.triggerParameterHints
,修改快捷鍵即可。
5 格式化代碼
Ubuntu下使用Ctrl+Shift+I
,MacOS使用Alt+Shift+F
,但是根據筆者前面推薦的設置,在保存的時候自動格式化,那麼使用CMD/Ctrl+S
保存代碼的同時即完成了格式化。
以上便是vscode針對c/c++開發需要進行的設置,一些基礎的設置可以查看之前的文章。