实用干货!把VSCode打造成oi刷题利器

广大使用C++编程的OIer:

你还在用UI丑陋、调试难受、连代码补全都没有的Dev cpp刷题?

快来尝试一下号称“宇宙最强编辑器”的VSCode

颜值爱的外表,成百上千的多样主题!强大的代码补全!便捷的运行方式!

不多废话,开整!

提示

本文的所有操作和配置在64位Windows 10系统下进行,在其他系统下的操作和配置可能略有出入。

下载VSCode

打开浏览器前往VSCode官网

code.visualstudio.com_

点击Download for Windows按钮下载VSCode安装包。

然后一路next下去,安装完成!

最好不要安装在C盘

优化VSCode

参照我的另一篇文章《优化VSCode:让你的VSCode变得好用又美观》对你的VScode进行优化。

如何打开setting.json?

快捷键F1Ctrl+Shift+P调出 命令面板, 然后输入 Open Settings (JSON)

即可打开settings.json

编辑完毕记得保存哦!

安装MinGW编译器

下载并解压

由于MinGW官网在国外,下载极慢且最近疑似遭到污染,所以我准备了下载好的MinGW压缩包放在BaiDu网盘(提取码:5cy2),可能不是最新版,但对于OI来说够用了。

下载压缩包后,将压缩包解压至磁盘上你喜欢的路径,重命名文件夹为你喜欢的名字。(路径和名字不要含有任何空格中文其他非ASCII字符,路径越短越好,最好不要在C盘)

image-20210212112703514

笔者这里将解压路径设为D:\MinGW64

解压后目录应为类似如下结构:

D:
MinGW64
|- bin
|- bulid-info.txt
|- etc
|- include
|- lib
|- libexec
|- opt
|- share
|- x86_64-w64-mingw32

设置环境变量

别急!现在还没有安装完能,还需要设置环境变量。

进入控制面板 -> 高级系统设置 -> 环境变量 -> 用户变量区域的“编辑” -> 新建

输入你的MinGW安装路径\bin,一路确定,设置成功!

笔者这里设置的环境变量内容是D:\MinGW64\bin

检验是否成功安装

打开cmd,输入g++若显示:

image-20210212114830213

则代表成功安装。

安装插件

必须安装以下插件才能愉快的刷题:

image-20210212171819376

image-20210212171829218

配置插件

在磁盘中新建一个路径和名称中不含有任何空格中文其他非ASCII字符的文件夹(路径越短越好,最好不要在C盘),这个文件夹就是你以后做题时写代码、保存代码、运行代码的地方了,我们称之为家目录

家目录下新建文件夹,取名为.vscode(注意是小写)。

.vscode文件夹下新建三个文件:

  • tasks.json(用于配置构建任务)
  • launch.json(用于配置调试)
  • c_cpp_properties.json(用于配置c/cpp选项)

将以下内容粘贴至对应的json文件中(记得补全汉字标识你的MinGW安装路径并去掉注释):

launch.json

{
    
    
    "version": "0.2.0",
    "configurations": [
        {
    
    
            "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  
            "type": "cppdbg",
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)  
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径  
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可  
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${fileDirname}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "你的MinGW安装路径\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
            "preLaunchTask": "g++ build",
            "setupCommands": [
                {
    
    
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

tasks.json

{
    
    
    "version": "2.0.0",
    "tasks": [
        {
    
    
            "type": "shell",
            "label": "g++ build",
            "command": "你的MinGW安装路径\\bin\\g++.exe",
            "args": [//编译参数列表
                "${file}",
                "-fexec-charset=GBK",
                "-static-libgcc",
                "-g",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
            ],
            "problemMatcher": [
                "$gcc"
            ]
        }
    ]
}

c_cpp_properties.json

{
    
    
    "configurations": [
        {
    
    
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "gcc-x64",
            "browse": {
    
    
                "path": [
                    "${workspaceFolder}"
                ]
            }
        }
    ],
    "version": 4
}

至此,.vscode文件夹的内容就配置完毕了。

可以有多个家目录。事实上,它们只是拥有.vscode文件夹的普通目录而已。配置好一个.vscode文件夹后,可以将.vscode文件夹保存起来备用。当部署其他的家目录时,可以把以前的.vscode文件夹拷贝进去以免去再次配置的麻烦。

换句话说,

拥有.vscode目录并正确配置了launch.jsontasks.jsonc_cpp_properties.json三个配置文件的目录就叫做家目录

家目录中以及其下无论多深的目录中,都可以正确地进行c/cpp的代码补全、编译运行和调试。

家目录下的目录名称中最好不含有任何空格中文其他非ASCII字符

最好不要在.vscode文件夹中添加除了配置文件以外的东西。

愉快地编译与调试

在上述工作都顺利完成后,赶快在家目录下新建一个.cpp文件吧!

如何新建文件:在侧边栏文件管理器中右键可唤出菜单,之后的操作几乎如同在windows资源管理器中一样。

在文件中写下你的代码。

编译之后运行

写好代码后,你可以按如下几种方式运行你的代码:

  • Ctrl+~键(~键一般在Esc键的下方)唤出控制台,手动输入编译命令,手动在终端运行(这种方式原始粗暴但不容易出问题,不过它似乎使前面所做的那么多工作几乎白做了)
  • Ctrl+F5键,等待一小会后会弹出黑色cmd窗口,在窗口里面运行的便是你的程序。
    • 缺点:似乎不能方便的在代码运行结束后暂停以方便查看运行结果,而且窗口弹出前的“准备时间”似乎很长。
    • 解决方案:鼠标移到某行行号的左侧或在某行上按F9可以打一个断点,程序运行至此处会暂停,借助这个方法,我们可以在return 0;行处打断点来暂停程序。(很不优雅的方式)
  • 通过Code Runner插件快捷地运行,方法下文会介绍(推荐使用该方法)

仅编译

通过Ctrl+Alt+B唤出生成任务列表,选择C/C++: g++.exe生成活动文件以做到只编译而不运行。

调试

通过按下F5键来为你的代码启动调试。

或者点击侧边图标栏的:

然后点击:

也可以为你的代码启动调试。

尽管F5看起来和运行没什么区别,但是请不要使用调试代替运行,即不要使用F5代替Ctrl+F5

调试界面介绍:

来尝试一下用VSCode调试代码吧!

快捷地运行(使用Code Runner)

还记得《优化VSCode:让你的VSCode变得好用又美观》中提到的Code Runner插件吗?

现在它可以帮助我们快捷地运行我们的cpp代码!

使用Code Runner比按Ctrl+F5键好在哪里?

首先,按Ctrl+F5键的运行方式本质其实也是调试,只是减少了启动的调试服务,但是仍有一部分调试服务被启动,启动速度慢。

而使用Code Runner本质是在控制台输入命令,和最原始的手动敲命令编译运行有异曲同工之妙,轻量级,启动速度快。

其次,按Ctrl+F5键的运行方式会在编译时加入-g参数,加入了这个参数生成的可执行文件保留了调试所需的代码信息,而我们使用Code Runner的初衷是运行而不是调试,多余的代码信息只会降低编译速度运行速度

还有一点,按Ctrl+F5键的运行方式需要靠打断点的方式在程序结束前暂停程序,并且是在弹出的黑窗口运行,脱离了VSCode,很不方便也很不优雅。

而使用Code Runner可以通过ConsolePauser.exe实现自动暂停代码同时显示代码运行耗时(就像Dev cpp一样),不靠打断点。并且能在VSCode的内置终端里运行,始终不脱离VSCode,没有黑窗口,更方便。

所以,个人认为使用Code Runner比按Ctrl+F5键好。

配置

首先按照《优化VSCode:让你的VSCode变得好用又美观》配置Code Runner插件。

然后在"code-runner.executorMap"设置项的大括号中加入如下内容(注意补全汉字标识ConsolePauser.exe的路径):

"cpp": " cls && cd /d $dir && g++ \"$fileName\" -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" -static-libgcc -std=c++11 && ConsolePauser.exe的路径\\ConsolePauser.exe $fileNameWithoutExt",
"c": " cls && cd /d $dir && gcc \"$fileName\" -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" -static-libgcc -std=c11 && ConsolePauser.exe的路径\\ConsolePauser.exe $fileNameWithoutExt"

你可能会问ConsolePauser.exe的路径是什么东西?

别急,我们慢慢分析。


首先,Code Runner似乎没有自动暂停显示代码运行耗时的功能,如何才能在Code Runner中实现Dev cpp自动暂停显示代码运行耗时的功能(毕竟这个功能对OIer来说很重要)呢?

经过一番的苦思冥想,终于找到了解决方案:借!

借?向谁借?

Dev cpp借!

Dev cpp安装目录下发现了这么一个文件:

image-20210212194245506

它在命令行参数中接收一个程序路径,运行程序后自动暂停显示代码运行耗时

就像这样:

image-20210212194512390

我们可以单独将这个文件提取出来,借助它实现我们想实现的功能。

这边已经将其提取出来了,放在BaiDu网盘(提取码:x124)中,大家可以自己下载。

下载完了之后,将其安置在磁盘中你喜欢的位置(路径和名称中不含有任何空格中文其他非ASCII字符,路径越短越好,最好不要在C盘)

这个路径就是上面提到的所需填写的ConsolePauser.exe的路径

一切配置完成后,让我们写一个程序,并用Code Runner运行一下吧:

提示:通过Ctrl+Alt+N快捷键可以代替按下绿色小三角的方式运行。

1r

s/1WrOWo9HF7SNSrJyI-1RxVg)(提取码:x124)中,大家可以自己下载。

下载完了之后,将其安置在磁盘中你喜欢的位置(路径和名称中不含有任何空格中文其他非ASCII字符,路径越短越好,最好不要在C盘)

这个路径就是上面提到的所需填写的ConsolePauser.exe的路径

一切配置完成后,让我们写一个程序,并用Code Runner运行一下吧:

提示:通过Ctrl+Alt+N快捷键可以代替按下绿色小三角的方式运行。

1r
至此,你成功拥有了一个刷题的利器:VSCode

猜你喜欢

转载自blog.csdn.net/Cykinter/article/details/113796587