使用VScode打Codeforces的提高效率小技巧
发布网友
发布时间:2024-10-04 23:22
我来回答
共1个回答
热心网友
时间:2024-10-05 11:10
原题为刷 OJ,现在改成了打 Codeforces,还是分享个人平时打 cf 的环境配置(顺便安利自己写的 cli 工具。
由于不知道什么时候 vscode 进行了更新,之前 0.1.0 版本的 tasks.json 会有警告,修改了一下之前的配置。
众所周知,vscode是目前一款非常优秀的轻量级文本编辑器,虽然集成了很多功能,但是由于需要配置环境,没有中文文档等问题,可能很多人并没有很好发挥它的强大功能。
后面内容的详细情况可以参考下面两个文档:
编译环境配置具体也可以参考(当时找了半天怎么没发现这个Orz):
编译调试环境
2. 下载MinGW,安装完成后,打开 MinGW Installation Manager,选择gcc(C编译器),g++(C++编译器),gdb(调试器),下载安装。
3. 配置gcc,g++的系统环境变量。配置完成后,打开cmd输入指令后显示如下内容。
4. 新建一个文件夹(可以视为一个项目),用 vscode 打开,随便敲一个 Hello World。按快捷键 ctrl + shift + p 打开 vscode 的命令行,输入 tasks,选择配置任务(Configure Task),选择其他,这时会自动生成并打开一个 tasks.json 的任务配置文件。
备注:在 VS Code 的新版本中,已经不需要复制粘贴以下的配置内容了,在 VS Code 的命令行内输入 Tasks: Configure Default Build Task 即可自动生成一个配置文件。
将文件做如下修改:
配置完成后,打开刚才写好的cpp,按快捷键 ctrl + shift + B,即可编译你当前文件,并生成对应的exe可执行文件。
这时,环境还没有调试功能,继续打开写好的cpp,选择左侧调试里面的小齿轮,配置 launch.json,选择C++(GDB/LLDB),这时又自动生成了一个 launch.json 文件,如下修改:
在新版本中,同样也是只需要使用自动生成的默认配置文件即可。
配置完成后,按F5,就可以自动编译cpp并打开,你也可以像visual studio中一样,使用断点,单步调试,查看变量,添加监视,查看调用栈。
备注:你也可以打开cmd,输入这个命令,就可以编译当前文件下的filename,生成filename.exe。
如果你的编译遇到错误,problemMatcher会自动根据输出的错误信息,利用正则表达式处理后,显示在vscode上。
tasks.json和launch.json文件中,会自动获取当前文件夹的位置以及正在处理文件名称,通过变量${file}(文件名称), ${fileBasenameNoExtension}(无拓展名的文件名称), ${workspaceRoot}(工作文件夹位置)。
集成终端
在vscode中,可使用快捷键 ctrl + ` ,会自动在当前位置打开一个cmd(shell)。
win10下,如果不习惯使用 powershell,可以在设置中将集成终端改为 cmd。
点击左下角的小齿轮,打开设置,在右边的个人配置中输入:
这样就可以直接在vscode中,运行你的代码,进行调试。
我们也可以编写bat使用 filename.exe out.txt,将输入输出重新定向,便于样例测试,或者进行对拍等。
代码片段
打开左下角的小齿轮,点击用户代码片段,选择 C++,建立一个 cpp.json 配置文件。
类似如下设置:
配置完成后,新建一个cpp,只需要输入acm,代码补全会自动提示刚才设置的代码片段,按回车即可自动生成如下代码:
除此以外,代码生成完成后,光标会自动停留在maxn后,等待你修改1000的值,修改完成后按 Tab 光标会自动移动到下一个位置,我的设置是下一个输入全局变量(第8行),再按一次 Tab 光标跳转到主程序中。
简要的配置方法
你可以添加多个并列的代码片段,类似于上例,"ACM-Model" 代表该代码片段的名称。
prefix 代表需要匹配的前缀,这里是,输入 acm 代码补全就会显示这个片段候选。
body 代表你要输入的代码,其中 ${1:1000},1代表光标第一个移动到这里,1000为默认值;$2,代表 Tab 后光标第二个移动到这里。以此类推,特别地,$0 为最后一个到达的位置。
这样,大家就可以根据自己需要配置各种算法模板了。
icpc-cli:Codeforces 比赛命令行工具
核心功能:
首次使用时,新建一个全局文件夹,并在其中建立名为 Codeforces 的文件夹,在 config.py 内设置好,安装即可。
开始比赛前,输入以下一个指令,即可在全局文件夹中 Codeforces 目录下新建名为 547 的比赛文件夹,并自动进入(需要添加 vs code 到环境变量内)
更多内容见 Github 仓库:
文件目录说明