以下是我经常用到的VS Code插件。由于插件本身具有详细的配置和介绍,不对插件本身的安装配置进行说明,仅仅支出这些插件的主要功能。具体使用强烈推荐看一下安装插件后的说明,大多数的问题和设置都可以找到,不要因为是英文就直接上网搜索。
VS Code配置同步
settings sync
目前settings sync的提示已经很智能,首次使用的时候会提示登录github,授权登录即可。登录github,在右上角点击加号,点击New gist(需要某些上网技巧,否则无法打开网页)
之后将新建的gist输入settings sync配置即可。
C++
这两款插件可以使得C++的编写变得更加容易。具有强大的自动补全功能。有关C++的具体配置下文会有具体讲解。
美化
主题和图标我推荐使用以下两个插件。第一个Material Theme插件主要是改变背景颜色、代码高亮和字体。第二款图标插件可以使得文件结构更加清晰。中文配置必选Chinese插件。
括号高亮
git
我推荐使用gitlens。gitlens的功能异常强大,图示仅仅是其功能的冰山一角,其甚至可以显示出代码部分谁在什么时候做的更改。
tab功能拓展
tabout插件可以使得按一下tab键直接从括号或者引号中跳出,不再需要去按方向键或者end键。
cmake
cmake功能使得CMakeLists.txt的书写变得容易,具有自动补全和高亮功能。
字典翻译
xmake
xmake是国人开发的一个类似cmake的跨平台自动化编译软件。个人认为其语言支持(支持cuda)也更加丰富。有兴趣的可以去看一下,支持国人的开发。网址:https://xmake.io/#/zh-cn/
vscode安装xmake插件之后,可以很方便的做编译。注意需要先安装xmake,再安装该插件。
C/C++配置
无论是Linux还是Windows,用户配置都放在.vscode下。这里说明一下用户配置和全局配置。用户配置是针对某一个工程或者文件夹而特别做的。所有配置文件都放在该文件夹下的.vscode隐藏文件夹中。
如下图所示就是全局配置的入口。这里更改的所有配置会在任意文件夹下可见。
Windows
先粘贴出配置,之后讲解各个文件。
c_cpp_properties.json配置如下:
{
“configurations”: [
{
“name”: “MinGW”,
“compilerPath”: “C:\\MinGW\\bin\\g++.exe”,
“includePath”: [
“${workspaceFolder}”
],
“defines”: [],
“browse”: {
“path”: [
“${workspaceFolder}”
],
“limitSymbolsToIncludedHeaders”: true,
“databaseFilename”: “”
},
“cStandard”: “c11”,
“cppStandard”: “c++17”
}
],
“version”: 4
}
launch.json:
// https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md
{
“version”: “0.2.0”,
“configurations”: [
{
“name”: “(gdb) Launch”, // 配置名称,将会在启动配置的下拉菜单中显示
“type”: “cppdbg”, // 配置类型,这里只能为cppdbg
“request”: “launch”, // 请求配置类型,可以为launch(启动)或attach(附加)
“program”: “${fileDirname}/${fileBasenameNoExtension}.exe”, // 将要进行调试的程序的路径
“args”: [], // 程序调试时传递给程序的命令行参数,一般设为空即可
“stopAtEntry”: false, // 设为true时程序将暂停在程序入口处,我一般设置为true
“cwd”: “${workspaceFolder}”, // 调试程序时的工作目录
“environment”: [], // (环境变量?)
“externalConsole”: true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
“internalConsoleOptions”: “neverOpen”, // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?
“MIMode”: “gdb”, // 指定连接的调试器,可以为gdb或lldb。但目前lldb在windows下没有预编译好的版本。
“miDebuggerPath”: “gdb.exe”, // 调试器路径,Windows下后缀不能省略,Linux下则去掉
“preLaunchTask”: “build” // 调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应
}
]
}
setting.json:
{
“files.associations”: {
“iostream”: “cpp”
}
}
tasks.json:
//
https:
//code
.visualstudio.com
/docs/editor/tasks
{
"version"
:
"2.0.0"
,
"tasks"
: [
{
"label"
:
"build"
,
//
任务名称,与launch.json的preLaunchTask相对应
"command"
:
"g++"
,
//
要使用的编译器
"args"
: [
"-g"
,
//
生成和调试有关的信息
"${file}"
,
"-o"
,
//
指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
"${fileDirname}\\${fileBasenameNoExtension}.exe"
,
//
"${fileDirname}/${fileBasenameNoExtension}.exe"
,
],
//
编译命令参数
"type"
:
"shell"
,
//
可以为shell或process,前者相当于先打开shell再输入命令,后者是直接运行命令
"group"
: {
"kind"
:
"build"
,
"isDefault"
:
true
//
设为
false
可做到一个tasks.json配置多个编译指令,需要自己修改本文件,我这里不多提
},
"problemMatcher"
:{
"owner"
:
"$gcc"
,
"fileLocation"
:
"absolute"
,
"pattern"
:[
{
"regexp"
:
"^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$"
,
"file"
: 1,
"line"
: 2,
"column"
: 3,
//
"location"
: 2,
"message"
: 5
}
]
}
}
]
}
Linux
launch.json
{
//
使用 IntelliSense 了解相关属性。
//
悬停以查看现有属性的描述。
//
欲了解更多信息,请访问: https:
//go
.microsoft.com
/fwlink/
?linkid=830387
"version"
:
"0.2.0"
,
"configurations"
: [
{
"name"
:
"gcc build and debug active file"
,
"type"
:
"cppdbg"
,
"request"
:
"launch"
,
"program"
:
"${fileDirname}/${fileBasenameNoExtension}"
,
"args"
: [],
"stopAtEntry"
:
false
,
"cwd"
:
"${workspaceFolder}"
,
"environment"
: [],
"externalConsole"
:
false
,
"MIMode"
:
"gdb"
,
"setupCommands"
: [
{
"description"
:
"Enable pretty-printing for gdb"
,
"text"
:
"-enable-pretty-printing"
,
"ignoreFailures"
:
true
}
],
"preLaunchTask"
:
"gcc build active file"
,
"miDebuggerPath"
:
"/usr/bin/gdb"
}
]
}
tasks.json
{
//
有关 tasks.json 格式的文档,请参见
//
https:
//go
.microsoft.com
/fwlink/
?LinkId=733558
"version"
:
"2.0.0"
,
"tasks"
: [
{
"type"
:
"shell"
,
"label"
:
"gcc build active file"
,
"command"
:
"/usr/bin/gcc"
,
"args"
: [
"-g"
,
"${file}"
,
"-o"
,
"${fileDirname}/${fileBasenameNoExtension}"
,
"-l"
,
"pthread"
],
"options"
: {
"cwd"
:
"/usr/bin"
},
"problemMatcher"
: [
"$gcc"
]
}
]
}
配置说明
一般情况下,c++的debug过程是这样的,首先vscode调用launch.json, launch.json根据"preLaunchTask": "gcc build active file",
的名称调用名为"gcc build active file"
的task.json, task.json中可以有多个task,根据tasks中的label名调用对应的任务。task主要负责进行编译成可执行文件。如果仅仅需要生成可执行文件,直接按crtl+shift+b
即可。
c_cpp_properties主要是针对c/c++编译进行的专门配置,如include路径等。
强烈建议看json中的英文,其描述是非常容易理解的。对c++的编译过程、对Linux稍微有些基础的人都能够快速掌握并进行私人定制。
详细的vscode配置参见微软。强烈推荐看微软的docs说明,虽然看起来读着费时间,但是远远要比你上网搜索各种资料更加快速。因为即使你按照我的配置设置成功了,当应用于不同的工程或者语言时,很可能难以进行配置。
本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-11/161367.htm