VsCode 使用指南(配置 + 美化)

· · 科技·工程

0xFF 写在前面

图有点卡,请耐心等待

感谢 hinin 对我的技术指导以及 ltl0825 和 Charllote_ 在使用配置 VsCode 的过程中对我文章的勘误与补充。

UPD 20250823:统一格式,修改笔误,增加设置背景的配置方式,并优化了缺省源生成代码。

UPD 20250915:修改了笔误与纰漏。

0x01 安装 MinGW

link 下载(建议使用 Edge 浏览器,并点击允许安装,不建议使用 Chrome,因为其会自动拦截该安装),在下载中点击下图安装包下载,

将这个链接复制(等会会用到),

如果弹出此弹窗,就说明已经有 MinGW,直接跳过下载即可(点击 Cancel),

下载完成后在控制面板中搜索 查看高级系统设置

点击环境变量,

点击系统变量中的 Path 变量,点击编辑,

点击新建,找到下载的位置,点击 bin 文件夹,复制现在的路径(为 ...\bin 的格式),复制进去。

测试:按 Win + R 调出命令指示符,输入 cmd,输入 g++ --version,若弹出如下图类似的字符,即设置成功。

0x02 安装 VsCode

今入官网(link)并点击对应的版本安装(如果你是管理员,则请安装 System Installer 版,否则安装 User Installer 版),安装好之后点击安装包安装。

0x03 必要的插件

安装完成后按 Ctrl + Shift + X,下载如下插件:

0x04 设置vscode里的环境

引用自 https://www.cnblogs.com/lidabo/p/18347048,如有侵权, 可以联系我删除。

配置编译器(生成c_cpp_properties.json文件)

在电脑中创建一个未来用于存放代码的文件夹(用英文命名),随后打开 vscode,点击“打开文件夹”,从而在 vscode内打开该文件夹。

按下快捷键 shift+ctrl+p,展示全局命令面板,搜索找到 C/C++ Edit Configurations(UI)

点击该条目,在左侧栏目可发现程序自动在我们存代码的文件夹下建立了一个“.vscode”文件夹(这个文件夹非常重要,后续的配置都是在它内部建立文件的),该文件夹下还有一个 c_cpp_properties.json文件。

配置 编译器路径 (写自己的编译器下载路径,为 .../bin/g++.exe 的格式)以及 IntelliSense 模式(设为:gcc-x64)。

配置构建任务(生成tasks.json文件)

点击 文件——新建文件,输入一段简单的测试代码(我们会发现代码明明没错却被划上了曲线,这是因为配置还没完成,暂时不用管),随后按 ctrl+s保存,注意要保存为 .cpp 格式而不是默认的 .txt

再次按快捷键 Ctrl+Shift+P 调出命令面板,输入tasks,选择 Tasks:Configure Default Build Task,再选择 C/C++: g++.exe build active file,此时会出现一个名为tasks.json 的配置文件,无需修改。

配置调试设置(生成launch.json文件)

回到测试代码界面,点击菜单栏的 Debug——Start Debugging(或“运行——启动调试”),再选择 C++(GDB/LLDB),再选择"g++.exe build active file"(或 `g++.exe - 生成和调试活动文件”),此时会出现一个名为launch.json的配置文件,无需修改。

0x05 运行文件

方法 1

点击左侧的三条竖线,点击 "+ Create Problem",并在第一个框中输入样例输入,第二个框中输入样例输出,点击 Run 即可运行。

Input 中输入样例输入,Expected Output 中输入样例输出。

如果显示 Passed 就是已经通过,如果是 Failed 就是答案错误,如果输出了 SEGTERM 就是输出过多或死循环 RE,TLE 了直接停摆。

方法 2

点击文件,点击右上角的三角,接着点击 Launch OI Runner ++,在下面的窗口的 Input 输入样例输入,点击两个叠起来的三角,就可以运行,如图(建议使用深色主题,否则浅色的运行按钮看不见):

方法 3

容易发现,法 1 和 法 2 无法进行死循环输出或判断代码是否 RE 或 TLE,所以此处给出另一种方法:

点击右上角的三角,点击 运行 C/C++ 文件,接着在跳出的黑窗口中操作即可(可以应用于死循环和 RE,但要求文件路径为全英文)。

0x06 luogu 刷题必备

安装 vscode-luogu,之后跟随引导登录;

如果要查看 Luogu 里的题目时 先按 Ctrl + Alt + G,接着再按 P 并输入题号,可以弹出题目内容,点击“传送到 cph”,并点击 cpp

之后会产生一个与题号相对应的 cpp 文件,进入之后点击 cph 的三条杆,此时 cph 就已经生成好了(即下图中的 Luogu_P_1001.cpp)。

需要提交题目时,按 Ctrl + Alt + G,接着按 S 再输入题号并选择语言即可提交代码,如上图(提交一次之后可以按 Enter 直接选中,如果交错题了可以按 Esc 退出,有的时候,洛谷的新版验证码会显示不出来,多试几次即可)。

vs-luogu 的弹窗是可以拖动的!查看其他功能可以按 Ctrl + K,Ctrl + S 进入快捷键,搜索 luogu 探索。

0x07 缺省源设置

点击左下角设置,点击 "代码片段",

在上方搜索框中输入 cpp,并点击 cpp.json(C++)

这是默认情况:

{
    // Place your snippets for cpp here. Each snippet is defined under a snippet name and has a prefix, body and 
    // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
    // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
    // same ids are connected.
    // Example:
    // "Print to console": {
    //  "prefix": "log",
    //  "body": [
    //      "console.log('$1');",
    //      "$2"
    //  ],
    //  "description": "Log output to console"
    // }
}

这里给出我的缺省源:

{
    "QWQ": {
        "prefix": "Problem",
        "body": [
            "#include <bits/stdc++.h>",
            "#define PII pair <int, int>",
            "#define LL long long",
            "#define ST string",
            "#define DB double",
            "",
            "#define fr(x, y, z) for(int x = y; x <= z; x ++ )",
            "#define dfr(x, y, z) for(int x = y; x >= z; x -- )",
            "",
            "using namespace std;",
            "",
            "const int N = 0;",
            "",
            "signed main()",
            "{",
            "    ios::sync_with_stdio(false);",
            "    cin.tie(0);",
            "",
            "    return 0;",
            "}",
            ""
        ]
    },
    "QAQ": {
        "prefix": "Contest",
        "body": [
            "#include <bits/stdc++.h>",
            "#define PII pair <int, int>",
            "#define LL long long",
            "#define ST string",
            "#define DB double",
            "",
            "#define fr(x, y, z) for(int x = y; x <= z; x ++ )",
            "#define dfr(x, y, z) for(int x = y; x >= z; x -- )",
            "",
            "using namespace std;",
            "",
            "const int N = 0;",
            "",
            "signed main()",
            "{",
            "    freopen(\".in\", \"r\", stdin);",
            "    freopen(\".out\", \"w\", stdout);",
            "",
            "    ios::sync_with_stdio(false);",
            "    cin.tie(0);",
            "",
            "    return 0;",
            "}",
            ""
        ]
    }
}

在 cpp 程序中,若是我的缺省源,输入 ProblemContest 就会激活缺省源,具体效果如图:

如果觉得手动打缺省源太累了的话,可以使用以下代码:

#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    string s;

    bool flg = 1;

    while(1)
    {
        getline(cin, s);
        if(s[0] == '~') break;

        if(!flg) cout << ",\n";
        flg = 0;

        int n = s.size();
        cout << '"';
        for(int i = 0; i <= n; i ++ )
        {
            if(s[i] == '"' || s[i] == '\\')
                cout << '\\';
            cout << s[i];
        }
        cout << '"';
    }

    cout << '\n';

    return 0;
} 

其中以 ~ 判断缺省源输入是否结束,所以请在缺省源结束时输入 ~

0x08 VsCode 字体设置

  1. Fira Code(link)
  2. JetBrains Mono(link)
  3. Cascadia Code(link)

设置时按 Ctrl + , 进入设置,搜索 editor.fontFamily,在跳出的输入框中输入 'X', monospace 的格式(X 为要使用的字体名称,一定要加上单引号括起来),就可以完成替换。

0x09 VsCode 背景设置

按 Ctrl + Shift + X 进入插件,搜索 background,安装。

按 Ctrl + , 进入设置,搜索 background,点击扩展,点击 Background:Fullscreem 下的“在 settings.json 中编辑”进入代码。

这些设置的意义(摘自插件官网,link):

名称 类型 默认值 描述
images string[] [] 自定义图片,支持 httpsfile 协议。
opacity number 0.1 透明度,等同 cssopacity,建议 0.1 ~ 0.3
size string cover 等同 cssbackground-size, 建议使用 cover来自适应。
position string center 等同 cssbackground-position, 默认值 center
interval number 0 单位 ,轮播时候图片切换间隔,默认 0表示不开启。
random boolean false 是否随机展示图片。

:https 和 file 协议详见:link。

0x0A 提升 VsCode 的适应性

0x0B VsCode 主题

主题的效果因人而异,不同的人对于不同的主题可能有不同的看法,还是那句话:喜欢就好,下面是几款推荐的主题(第一个使我用的)

VsCode 设置主题的方法:按下 Ctrl + K 之后按 Ctrl + T,在上方弹出的主题表中选择主题即可。

0x0C 其他 VsCode 优化

0x0D 说句闲话

VsCode 还能玩小恐龙,只需要搜索扩展 Chrome dinosaur game 即可!

0x0E 写在结尾

其实我也刚熟悉 VsCode 的使用模式,如有疏漏,敬请大家提出修改意见,我会及时修改。