vscode配置

vs code配置c++

  mircosoft的跨平臺編輯器vs code,下圖所示:git

  界面延續了vs的背景風格,且比vs更簡潔。github

  左側功能欄一共五個功能區:json

  其餘操做經過shift + command + p查找運行,好比用戶設置:shift + command + p後,輸入user setting,打開用戶設置:vim

1 插件

1.1 c++相關插件

1.1.1 microsoft c/c++

  微軟官方c/c++支持,提供符號搜索、代碼補全、定義跳轉等功能,沒啥好說的,基本上都會下。架構

1.1.2 c/c++ clang command adapter

  提供代碼診斷,須要預先安裝clangapp

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的安裝路徑ide

  codegnuglobal.autoupdate配置源碼改變時,動態加載。建議關閉該選項,否則每次源碼代碼都會卡到。ui

  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 調試

  編譯完代碼後,可用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

相關文章
相關標籤/搜索