配置一个适合算法竞赛的vscode(v2.0)

配置一个适合算法竞赛的vscode(v2.0)

0 在阅读之前

内容里的所有操作仅在Windows 10系统里试验可行。其他版本的系统可能有所差异,如果你使用的是其他版本的系统,请仅将其作为参考

1 为什么使用vscode

vscode是一个代码编辑的软件,它并不是IDE。但是凭借着插件,可以使得其拥有和IDE差不多一样的功能,甚至远超IDE。为什么选择vscode,在我看来有以下几点:

  1. 插件功能多:界面主题插件,语言插件,美化插件,跑代码插件等等等真的很方便。
  2. 使用简单灵活:创建源代码,编辑,编译和查看结果这些方面特别方便。(而vs20**需要一系列步骤,还很烦
  3. 速度快:作为一个代码编辑器,打开和响应的速度自然比一些IDE要快。

2 入门使用

2.1 下载与安装

下载地址

直接点击Download for Winodws即可,整个安装过程按照默认设置来

注:默认没有勾选将“通过Code打开”操作添加到Windows资源管理器文件/目录上下文菜单这两个选项的话,那么一定要手动勾选上这两项!

2.2 GUI介绍

刚安装完打开,界面是全英文的,别慌,先来下面介绍各个板块的用途。

05-01

  1. 菜单栏,提供一些操作,配置和使用的时候基本不会用到。
  2. 比较特殊,从上到下五个图标分别表示:资源管理器(Explorer)搜索(Search)源代码管理(Source control)运行和调试(Run and debug)扩展(Extensions),我们只需要资源管理器扩展就行了,其他可以通过右键把对应的一栏取消勾选来屏蔽掉。
  3. 对应2的一个操作界面。
  4. 编辑各种文件的区域,最上面显示打开了的文件。
  5. 最左端显示语法错误和警告,右端会有一些信息和小的功能。点击最左端可以打开终端窗口。

2.3 安装第一个插件-简体中文语言包

到目前为止还是纯英文的界面,这对于英语不好的使用者(本人就是)来说一定是不方便的,我们需要安装简体中文语言包。点击插件(Extensions),在搜索框中输入chinese即可找到该插件,点击install安装,安装完后会提示重启软件,按要求操作即可。重启后,整个软件便会以简体中文显示。

05-02

其他插件的安装方法也是同样的,下面不会赘述

2.4 创建文件和编辑

创建文件和编辑一共有两种方式。

  1. 输入快捷键Ctrl+N(或者点击文件->新建文件)可以直接创建一个单文件,之后需要你命名这个文件,文件的类型初始默认为无,需要在命名保存前设定
  2. 推荐的方法是先打开一个文件夹再新建文件。在资源管理器(Explorer)无打开的文件夹中点击打开文件夹。选完文件夹后点击新建文件即可在文件夹里创建一个新文件并命名,命名时要设定文件的类型直接在桌面或者资源管理器(windows)中右键通过Code打开也可以打开文件夹

vscode作为一个代码编辑器,有着非常多的编辑快捷键,可在这里查找你所需要的快捷键。

2.5 命令面板

命令面板是vscode的主要交互界面,可以按下Ctrl+Shift+P来打开。在命令面板中你可以输入命令进行搜索(中英文都可以),然后点击下拉选项或者按下Enter就可以执行。通过命名面板可以执行各种命令,包括编辑器自带的功能和插件提供的功能,我建议你自行探索以求更好的了解。

2.6 终端

终端是vscode中可以让你使用cmdpowershell的一个功能,可以通过按下Ctrl+Shift+`(或者菜单栏终端->新建终端)来打开。终端的页面是这样的:

05-07

上面的一行看起来不仅仅只有终端,那就都一一介绍一下它们,按钮从左到右分别是:

  1. 问题:在有该文件类型的语法检查功能时显示当前文件中的语法错误。
  2. 输出:不需要知道。
  3. 调试控制台:不需要知道。
  4. 终端:上面介绍过了。
  5. 这是一个有下拉列表的选择框,可以切换到不同的终端。
  6. 接下来是新建终端,拆分终端,删除终端,最大化终端和关闭终端面板的按钮。

在实际使用中,我们经常使用终端的界面来运行和调试程序。

2.7 设置

设置可以通过菜单栏文件->首选项->设置或者快捷键Ctrl+,来打开。这里介绍两个设置修改。

  1. 常用设置->files.autoSave设为onFocusChange
  2. 功能->资源管理器->Confirm Delete勾选框勾选。

vscode不仅可以通过设置界面来修改设置,还可以通过修改settings.json这个文件来修改设置。按下Ctrl+Shift+P打开命令面板,输入setting,点击首选项:打开设置(json),在文件末尾插入以下代码:

"files.autoSave": "onFocusChange",
"explorer.confirmDelete": false,

这样也可以做到和前一种设置相同的效果。要注意的是,json的文件格式:每个相同缩进的语句用逗号隔开,其中最后一行语句末尾可以不用逗号

3 配置编程环境前的准备

3.1 Code Runner插件(vscode)

Code Runner插件用于代码一键编译和运行。它将编译指令,运行指令或两者的结合集成到一个▶按钮上,当你按下按钮时(也可以使用快捷键Ctrl+Alt+N),这个插件将会自动在终端(默认其实是输出)将你编写在设置里的指令运行,写一次指令就可以一直用,免去了繁琐。

Code Runner插件有几个重要的设置(json代码格式):

  1. "code-runner.runInTerminal": true:设置为在终端运行,默认是在输出。
  2. "code-runner.ignoreSelection": true:取消选择部分代码进行运行的功能。
  3. "code-runner.saveFileBeforeRun": true:在运行前保存文件。
  4. "code-runner.executorMap":{}:用来设置运行指令。

"code-runner.executorMap":{}的文件格式大致是这样:

"code-runner.executorMap":{
    "编程语言(c,c++或python)":"运行指令"
}

其中在运行指令部分里:

  1. $fileName:这段被替换成运行的当前文件的文件名(带扩展名)。
  2. $fileNameWithoutExt:这段被替换成运行的当前文件的文件名(不带扩展名)。
  3. $dir:这段被替换成运行的当前文件所在的文件夹的绝对路径。

3.2 Competitive Programming插件(vscode)

Competitive Programming插件用于算法竞赛的代码样例自测。这个插件能让你快速的进行样例测试,适合算法竞赛的场景。配合Competitive Campanion插件用起来更加舒爽。

05-10

Competitive Programming插件有几个重要的设置:

  1. "cph.argsC"="参数" :设置C编译参数。
  2. "cph.argsCpp"="参数":设置C++编译参数。
  3. "cph.timeOut": 2000:设置程序运行时间限制。
  4. "cph.defaultLanguage": "语言名":设置Competitive Campanion插件拉样例后创建的样例对应空文件语言类型。没有Competitive Campanion插件可以忽略。

3.3 Competitive Campanion插件(Google&FireFox)

Competitive Campanion插件是辅助Competitive Programming插件使用的一款工具,它可以将竞赛网站上的题目的样例拉取到vscode,供Competitive Programming插件使用。墙裂推荐。(谷歌浏览器插件下载有点麻烦,可能需要搭梯子才行)

3.4 语言插件

在进行某个语言的配置前,要下载并安装对应语言的插件,例如C/C++配置就要下载并安装C/C++插件

4 C/C++配置

4.1 配置MinGW环境

纯净的vscode无法简单快速的运行和调试程序,所以我们需要自己搭建一个环境。这里用的是MinGW+Code Runner插件。

首先我们需要下载MinGW并配置。下载地址

点开页面后拉到下面的下载链接,选择最新的MinGW-W64 GCC-8.1.0。(注:1386表示适合32位,x86_64表示64位,posix表示可移植,win32表示供win32线程,sjljdrawfseh表示异常处理机制(这个选择seh吧))。

下载完之后解压缩文件夹到自己想要放的位置,然后可以配置环境变量了。你需要获得.../MinGW/bin这样的文件路径,然后在系统变量的PATH中添加这个文件路径即可。

验证是否已经配置好,按下Win+R输入powershell运行,输入g++ -v,如果出现以下的提示信息,则配置成功。

05-05

3.2 settings.json配置

配置如下:

"code-runner.executorMap":{
    "c": "cd $dir ; gcc $fileName -o $fileNameWithoutExt ; ./$fileNameWithoutExt",
    "cpp": "cd $dir ; g++ $fileName -o $fileNameWithoutExt ; ./$fileNameWithoutExt",
}

运行指令可以随意修改,比如加上[-g]参数。做完这一步就配置完毕了。

5 Python配置

5.1 配置Python环境

首先下载Python并安装,选择最新的版本即可,整个安装过程按照默认设置来。附上下载地址

接下来检查是否安装成功,打开powershell输入python后显示如下信息:

05-09

这样就表示安装成功了,先输入import this欣赏一下美文吧。接着输入quit()退出然后输入pip list看看有没有flake8autopep8flake8是一个python的语法检查工具,比较好用。autopep8是一个代码美化工具,也比较好用。我们需要安装它们。没有flake8autopep8的话就输入pip install flake8pip install autopep8来安装它们。

5.2 settings.json配置

配置如下:

"python.linting.flake8Enabled": true,
"python.formatting.provider": "autopep8",
"python.linting.flake8Args": [
    "--max-line-length=248"
],
"python.linting.pylintEnabled": false,
"code-runner.executorMap":{
    "python": "python -u",
}

做完这一步就配置完毕了。

6 番外1-Competitive Programming插件和Competitive Campanion插件混合食用指南

配置步骤:

  1. 安装好Competitive Programming插件和Competitive Campanion插件。
  2. 按照3.2提到的重要设置,以自己的喜好来配置。
  3. 打开谷歌浏览器(火狐类似),点击右上角的自定义及控制 Google Chrome,然后寻找更多工具->扩展程序选项打开扩展程序界面,点击Competitive Campanion插件的详细信息->扩展程序选项,在Custom ports下面的输入框填上任意未占用端口(例如8080),这样就完成了设置。

使用步骤:

  1. 打开vscode,任选一个文件夹打开。
  2. 在谷歌浏览器里打开任一插件所包含的算法竞赛网站的题目界面,点击右上角插件的加号。
  3. 这时候你会发现vscode文件夹里多出了一个文件,并且已拉取到数据。

7 番外2-如何使用gdb在vscode里进行C/C++调试

7.1 settings.json配置

要使用gdb对用C/C++生成的程序进行调试,需要在编译的时候加上[-g]参数,此外运行程序也要用gdb来运行程序。配置如下:

"code-runner.executorMap":{
    "c": "cd $dir ; gcc $fileName -o $fileNameWithoutExt -g ; gdb $fileNameWithoutExt",
    "cpp": "cd $dir ; g++ $fileName -o $fileNameWithoutExt -g; gdb $fileNameWithoutExt",
    },

7.2 使用(内部指令)

gdb有如下的内部指令:

指令描述
r/run/run [参数]运行程序
kill终止程序
b [行号]在某行设置断点
b [函数名]在函数处设置断点
b [行号/函数名] [条件(if+表达式)]当某个条件成立时,在某行/函数处设置断点
clear [行号/函数名]清除断点
c/continue继续运行程序 (在停止之后,例如在一个断点之后)
next单步执行 (在停止之后),跳过函数调用
step单步执行 (在停止之后),进入函数调用
display [变量名]在断点的停止的地方,显示指定的表达式的值。(显示变量)
undisplay [变量名]删除一个display设置的变量显示
make [文件名]不退出gdb重新生成可执行文件(代码变更时)
quit退出gdb

注意:[变量名]可能存在多个相同的变量名(不同的函数),这时候要在变量名前面加上('函数名'::)。


想了解更多的信息可以自助查询官方文档

感谢浏览😝!

此文章可能会在后续更新,欢迎纠错。