【其他】OIer 五分钟速通 VSCode 配置


以下内容在 NOI Linux 上不可用

草,NOI Linux 上的 C/C++ 插件是没有被安装的,安装需要联网。

设置工作区

打开 VSCode,文件 -> 打开文件夹,然后把你写代码的目录找到并打开。

打开后差不多是这样的:

将 g++ 的目录加入环境变量

这一步其实不做也可,只要你知道你的编译器在哪。

如果你安装了 Dev-Cpp,那 g++ 的目录应该在 C:\Program Files (x86)\Dev-Cpp\MinGW64\bin,将这个目录加入环境变量即可(可以百度搜如何加)。

安装 C/C++ 插件

在 VSCode 的扩展商店搜索 C/C++ 插件并安装(NOI Linux 上的 VSCode 是已经装好这个插件了的)

配置编译器和运行选项

随便创建一个 cpp 文件,然后按 F5,选择 C++ (GDB/LLDB)

等待一下,VSCode 会报一些错,不用管。看到你的工作目录下面多出了一个 .vscode 文件夹,里面有 launch.jsontasks.json 文件。

打开 launch.json,然后点击 VSCode 左侧的编译与调试。

点击绿色三角旁边的候选栏,点击添加配置。

选择 C/C++ Windows 启动

这样你的 launch.json 里就应该存在了两种配置,一种是直接运行,一种是调试:

把调试配置里的 preLaunchTask 给复制到上面的配置里:

调试的配置如果用不到可以删除(实际上我也不会用)。

然后把 "program": "输入程序名称,例如 ${workspaceFolder}/a.exe", 修改成 "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",,含义在后面有说。

这样 launch.json 就配置好了。可以直接用我的:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(Windows) 启动",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "console": "externalTerminal",
            "preLaunchTask": "C/C++: g++.exe 生成活动文件"
        }
    ]
}

然后编辑 tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            // 如果你把 g++ 加入了环境变量,这里也可以直接填 g++
            "command": "C:\\Program Files (x86)\\Dev-Cpp\\MinGW64\\bin\\g++.exe",
            // 下面是 g++ 的编译选项
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe", // ${fileDirname} 表示将会被编译的文件所在目录,${fileBasenameNoExtension} 表示去掉扩展名后的文件名
                "-std=c++14", // 视情况而定
                "O2"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

然后按 Ctrl+Shift+P,输入 C/C++ 并选择编辑配置:

这样 .vscode 文件里会多出一个 c_cpp_properties.json 文件,编辑它:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
				"HRJ" // 可以添加编译时 define 的东西
            ],
            "compilerPath": "C:\\Program Files (x86)\\Dev-Cpp\\MinGW64\\bin\\gcc.exe",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14", // 视情况而定
            "intelliSenseMode": "gcc-x64" // 就填这个
        }
    ],
    "version": 4
}

大功告成!回到你随便弄的 cpp 文件,按 F5,理论上会弹出黑窗口表示编译并运行成功!

然后因为安装 C/C++ 扩展的时候会自动安装 clang-format 扩展。所以你还可以设置代码自动格式化。

首先把 Format On Save 设置为 true

这个时候只要你按 Ctrl + S 保存文件就会自动格式化了。

可以在工作区目录下建立 .clang-format 文件来进行一些自定义设置:

NamespaceIndentation: All // 缩进所有 namespace 里的内容
AllowShortBlocksOnASingleLine: true // 允许短代码块写在一行
AllowShortFunctionsOnASingleLine: All // 允许短函数写在一行
AllowShortLoopsOnASingleLine: true // 允许短循环一行
AllowShortIfStatementsOnASingleLine: AllIfsAndElse // 允许短 if else 语句写在一行
FixNamespaceComments: false // 不在 namespace 后添加形如“// namespace xxx” 的注释