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个功能(togglejumplistclear),足够简单粗暴,所以这里选择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 }