写前感想:前前后后,折腾好几次,最后还是在学长安利下,开始入坑vscode了。原因一个是小巧,还有就是vs新建工程码题的方式太消耗内存了,基本每个项目就是以MB为单位计算的,然后希望用这篇文章记录自己的配置经历。多爬山多阅历,才能视野更开阔。
1. 下载VScode: https://code.visualstudio.com/Download
2. 安装好以后首先第一步安装c++插件,有很多选择,例如clang,我选择的就是这几款,第一个是cpptools,保证支持c++的语法啊,什么的,后面两个更多是插件补全吧,选择就好。
3. 接下来就是安装编译调试环境:和网上大多数教程一样,目前windows下调试仅支持 Cygwin 和 MinGW。这里使用的是MinGW。涉及到版权问题,我就直接贴一下我参照的原网址:点击打开链接
然后需要特别注意的是,里面task.json最好按照模板模式写
- {
- "version": "0.1.0",
- "command": "g++",
- "args": ["-g","${file}","-o","${file}.exe"], // 编译命令参数
- "problemMatcher": {
- "owner": "cpp",
- "fileLocation": ["relative", "${workspaceRoot}"],
- "pattern": {
- "regexp": "^(.*):(\d+):(\d+):\s+(warning|error):\s+(.*)$",
- "file": 1,
- "line": 2,
- "column": 3,
- "severity": 4,
- "message": 5
- }
- }
- }
然后也是那个launch.json
- {
- "version": "0.2.0",
- "configurations": [
- {
- "name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示
- "type": "cppdbg", // 配置类型,这里只能为cppdbg
- "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
- "launchOptionType": "Local", // 调试器启动类型,这里只能为Local
- "targetArchitecture": "x86", // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
- "program": "${file}.exe", // 将要进行调试的程序的路径
- "miDebuggerPath":"C:\MinGW\bin\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
- "args": ["blackkitty", "1221", "# #"], // 程序调试时传递给程序的命令行参数,一般设为空即可
- "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
- "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
- "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
- "preLaunchTask": "g++" // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
- }
- ]
- }
特别注意一下那个miDebugger的路径,注意这里要与MinGw的路径对应,这个涉及到调试层面的问题。
4. 可以调试以后就算成功了一大半了,然后就是配置in.txt,out.txt吧,直接在文件夹新建然后把文件拖到右边分屏,这样看起来就特别舒服,啧啧啧
5. 然后就是一些小地方,我习惯了studio的tab大发和高亮主题:
Tab键设置既可以下载一些插件自动设置,我是直接手动操作的,也不难:点击左上角“文件”->“首选项”->“设置”,就会出来一个setting.json,搜索一下tab,如果里面设置不符合自己的心意的话,就直接复制格式,然后自己在setting里面更改再保存就好了
最后就是主题,其实挺喜欢深色主题的,毕竟养眼,然而目前没找到一款好看的,就且用着浅色吧,主题可以先去插件下载的地方搜索关键词“theme”,然后逐个点进去看看是否有符合心意的,如图:
最后应用时候点击左上角“文件”->“首选项”->“颜色主题”,进去以后自己选择一款自己喜欢的即可:
6. 最后还是安利一波输入输出流的神代码配合之前的in.txt,out.txt,至少对于acmer来说调试是极好的,而且交到oj上也没问题,直接略过
- #ifndef ONLINE_JUDGE
- freopen("in.txt", "r", stdin);
- freopen("out.txt", "w", stdout);
- long _begin_time = clock();
- #endif
-
-
- #ifndef ONLINE_JUDGE
- long _end_time = clock();
- printf("time = %ld ms
", _end_time - _begin_time);
- #endif
效果图