vs code配置
mircosoft的跨平台編輯器vs code,下圖所示:

界面延續了vs的背景風格,且比vs更簡潔。
左側功能欄一共五個功能區:

其他操作通過shift + command + p查找運行,比如用戶設置:shift + command + p后,輸入user setting,打開用戶設置:

1 插件

1.1 c++相關插件
1.1.1 microsoft c/c++
微軟官方c/c++支持,提供符號搜索、代碼補全、定義跳轉等功能,沒啥好說的,基本上都會下。
1.1.2 c/c++ clang command adapter
提供代碼診斷,需要預先安裝clang
1.1.3 c++ Intellisense
類似vim的ctags + taglist功能。需要預先安裝gnu global -- gtags。在源碼目錄執行gtags后,重新打開vscode可使用。vscode的user setting配置為:
"codegnuglobal.executable": "/usr/local/bin/global", "codegnuglobal.autoupdate": false,
codegnuglobal.executable指定gtags的安裝路徑
codegnuglobal.autoupdate配置源碼改變時,動態加載。建議關閉該選項,不然每次源碼代碼都會卡到。
gtags使用注意事項:
gtags使用手冊:https://www.gnu.org/software/global/manual/global.pdf
如c++代碼位於為只讀文件夾,需要進行如下設置:
1 $ mkdir /var/dbpath 2 $ cd /cdrom/src #the root of source tree 3 $ gtags /var/dbpath #make tag files in /var/dbpath 4 $ export GTAGSROOT=‘pwd‘ #設置當前路徑 5 $ export GTAGSDBPATH=/var/dbpath 6 $ global func
如果訪問其他目錄下的c++代碼,需要進行如下設置:
1 $ pwd/develop/src/mh #this is a source project 2 $ gtags 3 $ ls G*TAGSGRTAGS GTAGS 4 $ global mhluip/mhlsbr.c #mhl() is found 5 $ global strlen #strlen() is not found 6 $ (cd /usr/src/lib; gtags) #library source 7 $ (cd /usr/src/sys; gtags) #kernel source 8 $ export GTAGSLIBPATH=/usr/src/lib:/usr/src/sys 9 $ global strlen../../../usr/src/lib/libc/string/strlen.c #found in library 10 $ global access../../../usr/src/sys/kern/vfs_syscalls.c #found in kernel
1.2 cmake相關插件
1.2.1 CMake
提供cmake的外部支持,該插件能實現cmake語法高亮,代碼補全、檢查等功能
user setting配置如下:
"cmake.cmakePath": "/Users/honggangwang/Android/sdk/cmake/3.6.4111459/bin/cmake",
1.2.2 CMake Tools
...
1.3 Vim插件
提供了vs code下的vim模擬器,即把文本編輯改成vim風格。
修改用戶設置
"vim.easymotion": true,
"vim.sneak": true,
"vim.incsearch": true,
"vim.useSystemClipboard": true,
"vim.useCtrlKeys": true,
"vim.hlsearch": true,
"vim.insertModeKeyBindings": [
{
"before": [
"j",
"j"
],
"after": [
"<Esc>"
]
}
],
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [
"<leader>",
"d"
],
"after": [
"d",
"d"
]
},
{
"before": [
"<C-n>"
],
"commands": [
":nohl"
]
}
],
"vim.leader": "<space>",
"vim.handleKeys": {
"<C-a>": false,
"<C-f>": false
},
mac下,To enable key-repeating execute the following in your Terminal and restart VS Code:
$ defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false # For VS Code $ defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false # For VS Code Insider $ defaults delete -g ApplePressAndHoldEnabled # If necessary, reset global default
1.4 bookmark
常用的bookmark有兩種,一個是Bookmarks,另一個是Numbered Bookmarks。

Bookmarks功能比Numbered Bookmarks強大,但Numbered Bookmarks僅有4個功能(toggle\jump\list\clear),足夠簡單粗暴,所以這里選擇Numbered Bookmarks。

1.5 中文語言包
Chinese Language pack,沒啥好說的
vim下需要安裝的基本擴展在vscode下幾個插件就能搞定,作為一個編輯器還是很方便的。
2 主題色
shift + command + p --> theme可選擇主題顏色

3 調試
3.1 c++
編譯完代碼后,可用F5開始代碼調試。如無launch.json配置文件,vsc將會自動生成該文件進行調試配置,如下所示:
{
// 使用 IntelliSense 了解相關屬性。
// 懸停以查看現有屬性的描述。
// 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": " Launch", // 配置名稱,將會在啟動配置的下拉菜單中顯示
"type": "cppdbg", // 配置類型,這里只能為cppdbg
"request": "launch", // 請求配置類型,可以為launch(啟動)或attach(附加)
"launchOptionType": "Local", // 調試器啟動類型,這里只能為Local
"targetArchitecture": "x86", // 生成目標架構,一般為x86或x64,可以為x86, arm, arm64, mips, x64, amd64, x86_64
"program": "${workspaceFolder}/bin/ShellTest", // 將要進行調試的程序的路徑
"args": [], // 程序調試時傳遞給程序的命令行參數
"stopAtEntry": false, // 設為true時程序將暫停在程序入口處,一般設置為false
"cwd": "${workspaceFolder}/bin", // 調試程序時的工作目錄
"environment": [],
"externalConsole": true, // 調試時是否顯示控制台窗口,一般設置為true顯示控制台
"console": "none",
"miDebuggerPath": "/Applications/Xcode.app/Contents/Developer/usr/bin/lldb-mi", // miDebugger的路徑
"MIMode": "lldb", //調試器類型
//"preLaunchTask": "gcc" // 調試會話開始前執行的任務,一般為編譯程序,c++為g++, c為gcc
}
]
}
需要注意的是,在macOS下使用lldb,如果不配置miDebuggerPath項,則有可能會導致所有stl容器size為0 ,如下圖所示:

該問題已在git上確認是vs code的坑,目前還在修復中,具體詳情見https://github.com/Microsoft/vscode-cpptools/issues/1768
3.2 python
launch.json
1 "version": "0.2.0", 2 "configurations": [ 3 { 4 "name": "Python", 5 "type": "python", 6 "request": "launch", 7 "stopOnEntry": false, 8 //"pythonPath": "C:/Python27/python", 9 "pythonPath": "C:/Users/yanta/AppData/Local/Programs/Python/Python36/python", 10 "program": "${file}", 11 "cwd": "${workspaceRoot}", 12 "env": {}, 13 "envFile": "${workspaceRoot}/.env", 14 "debugOptions": [ 15 "WaitOnAbnormalExit", 16 "WaitOnNormalExit", 17 "RedirectOutput" 18 ] 19 }
