如何配置一个舒适的 OI 环境——2024 年 VSCode 配置指南
Mrkn_chenyx12 · · 个人记录
作为一位 OIer,一个舒适的 OI 环境是高效做题的基础。开始之前,先放出几个问题:
- 你是否厌倦了模拟赛的题面和代码不在同一个窗口
- 你是否被 Dev-C++ 永远弄不明白的调试折磨
- 你是否喜欢字体连字
- 你是否想把终端也塞进编辑器窗口
- 你是否想要一个好看的窗口,可以换背景或添加模糊背景,可以换好看的主题,可以放二次元代码伴侣
- 你是否喜欢用 CPH
- 你是否想不打开浏览器直接交题
- 你是否想要更精准、更优雅的代码高亮、分析和提示,有自动查错,可以查看类或函数的定义和描述,能隐藏无用代码,有彩虹括号,字符串转义高亮,以及更多
- 你是否想原地切换编译器,GCC、Clang、MSVC 想用哪个就用哪个
- 你喜欢写项目吗?想方便地管理 CMake 项目和 Git 吗
- 你想不想要实时保存、没保存关掉也不会丢失
- 还有一大堆
如果是这样,那么你很适合这款代码编辑器——Microsoft Visual Studio Code。
下载和安装
Microsoft Visual Studio Code 是免费软件,其内核更是开源软件。你可以从这个网站下载到适用于多个平台的 VSCode。另外,由于 VSCode 本身基于 Electron,还可以在这里免下载在线体验。
针对 OI 的基础配置
VSCode 绝大多数自定义功能可以通过扩展实现,扩展是 VSCode 的精髓,这也是为什么赛场上的 VSCode 不大好用。
切换到左侧扩展选项卡开始安装几个堪称必备的扩展。
中文语言包
VSCode 界面默认为英文。有的人安装好窗口右下角就会弹窗提示安装中文语言包。如果没有,可以搜索 Chinese 或 简体中文,找到简体中文语言包安装即可,重启 VSCode 生效。
C/C++
众所周知,大部分 OIer 都使用 C/C++ 作为主要编程语言。这时,一个名为 C/C++ Extension Pack 的扩展就可以满足使用 C/C++ 编程的大部分需求,包括函数和类的定义说明、自动查错、定义和引用查找、隐藏无用代码(比如被预处理宏排除的、return 后面的)
对于 Windows,要使用 GCC 或 Clang 编译代码,请将 GCC 或 Clang 的 bin 目录(包含 gcc.exe、g++.exe、clang.exe、clang++.exe 等程序的目录)添加到 PATH 环境变量,VSCode 将自动识别。GCC 和 Clang 可以来源于 Dev-C++、TDM-GCC、Code::Blocks、MSYS2、MinGW 或其他预编译包或从源代码编译得到的二进制等。
对于 Windows,要使用 MSVC 编译代码,请按照 Visual Studio 并附带桌面平台 C/C++ 支持。VSCode 可以自动识别 MSVC 编译器(cl.exe)的位置。
对于 macOS 和 Linux,要使用 GCC 或 Clang 编译代码,请使用一个合适的包管理器安装对应的编译器。如 NOI Linux 可以使用 sudo apt install gcc 安装 GCC,带有 Homebrew 的 macOS 可以使用 brew install gcc 安装 GCC。
按照网上某些老旧的指南可能会要求你打开一个目录然后写一大堆配置,现在已经不需要了。除非是 MSVC,也只需要打开一个目录就够了。
可以进一步配置 C/C++ 扩展,选择使用的标准版本、编译参数、宏定义、include 路径等。如果没有配置 include 路径,可能会遇到找不到头文件的情况,可以参考 Dev-C++ 配置,以下是几个 GCC 常用的头文件路径(相对于 GCC 安装目录),可以用于模仿并按照实际情况添加:
include
include/c++/<gcc-version>
include/c++/<gcc-version>/<platform>
lib/gcc/<platform>/<gcc-version>/include
lib/gcc/<platform>/<gcc-version>/include/c++
lib/gcc/<platform>/<gcc-version>/include/c++/<platform>
<platform>/include
CPH
Competitive Programming Helper (cph) 是一套广泛运用于 OI 的工具,可以在 VSCode 的扩展商店搜索到。虽说是商店,其实全都免费。要使用适用于 VSCode 的 cph,需要保证:
- 打开了一个文件夹
- 此 VSCode 窗口打开时没有启用了 cph 的其他 VSCode 窗口
关于什么时候 cph 没有启用,主要是 VSCode 在不信任窗口的时候,具体详见 VSCode 的信任机制。普通 OIer 可以禁用。
洛谷支持
vscode-luogu 是一款可以在 VSCode 中与洛谷交互的插件,可以登录自己的洛谷账号,并且可以查看和提交题目、与 cph 联动、打卡、看专栏等。搜索并按照这个插件即可。
使用第一步尽可能先登录。侧边栏比较简易,大部分操作使用 VSCode 的命令面板(Ctrl+Shift+P)完成,可以输入 luogu 查看匹配的命令及其描述。现有版本似乎没有打开题目的快捷方式,可以通过命令面板完成。命令面板和侧边栏均可完成提交操作,操作时焦点应该在被提交的代码上。
看模拟赛的 PDF
vscode-pdf 可以在 VSCode 查看 PDF 文件,对于写模拟赛尤其有用,搜索安装即可。将 PDF 文件拖放到编辑器,默认将使用 PDF 查看器打开。
另外,你也可以搜索并按照一些查看 docx 文件的扩展,虽然大多支持有限,但对于某些 docx 格式的模拟赛题面已经足以应对。
LaTeX 支持
这一条给出模拟赛的人很合适。LaTeX Workshop 插件,它可以支持插入
个性化配置和功能
图标/自定义背景/代码伴侣
图标参考视频 https://www.bilibili.com/video/BV1Yp421Q7bP,使用 Custom CSS and JS Loader 插件。
背景可以使用 background 扩展,可以设置背景图片、透明度等多个数值。
毛玻璃背景可以使用 Vibrancy Continued 插件,注意在高版本 Windows 版 VSCode 上的兼容性问题和性能问题,不推荐使用。
代码伴侣可以使用 Rainbow Fart Waifu 插件。
颜色主题和图标主题
颜色主题推荐使用 Atom One Dark 插件,图标主题推荐使用 Material Icon Theme 插件。这个配置可以提供一个舒适、柔和的暗色环境和鲜艳的图标,包括对特殊文件/文件夹(如 bin、build、src)的特殊支持。
代码截图
安装 CodeSnap 插件,选中片段,右键点击 CodeSnap。新开的 CodeSnap 标签页中可以点击照相按钮保存,也可以右键图片复制。
LLDB 调试
C/C++ 跨平台调试主要有 GNU 的 GDB 和 LLVM 的 LLDB。之前安装的插件已经支持了 GDB 调试,安装 CodeLLDB 插件可以支持 LLDB 调试。
十六进制编辑
安装 Hex Editor 插件,打开二进制文件可以选择使用 Hex Editor 编辑。不过推荐的方式是使用更加专业的十六进制编辑器,如 EmEditor。
非 OI 配置
版本管理
推荐安装 Git Lens 插件,可以方便地查看 Git 提交历史、分支树、贡献者等,也可以完成某些操作。VSCode 在 Git 仓库中自带文件创建和更新显示。
CMake
CMake 是主要用于 C/C++ 的跨平台、跨工具链构建系统,支持构建为 UNIX Makefile、Visual Studio 项目、Ninja、XCode 项目等多种格式。可以安装 CMake 插件和 CMake Tools 插件,自动构建 CMake 项目。注意 CMake 软件需要单独下载。
其他编程语言/内容
CSharp: C#、C# Dev Kit \
Java: Extension Pack for Java \
Python: Python、Python Debugger \
Jupyter: Jupyter \
Vue.js: vue 或 Vue - Offical \
JS/TS: JavaScript and TypeScript Nightly
另外,VSCode 甚至有大批针对非正式语言(如 Brainf**k、文言)的支持,以及大批量为 Minecraft 设计的插件,可以酌情安装。
其它
维护
时刻注意,插件的数量会严重影响启动速度。如无需要,请不要安装过多插件,以免引起启动缓慢或卡顿。
注意 C/C++ 工具在调试的过程中会产生大量的调试文件,长期不清了可达数 GB。如 Windows 平台位于 C:\Users\<UserName>\AppData\Local\Microsoft\vscode-cpptools。其中的文件可删除。
便携式环境的插件
Windows 中安装的插件位于 C:\Users\<UserName>\.vscode\extensions,VSCode 内置插件位于安装目录下的 resources/app/extensions 目录。可以将安装目录拷贝到移动存储介质上,并将安装的插件拷贝到内置插件目录,从而达成便携式插件。注意有的插件会在安装完成后弹出界面,这在本地安装很正常,但便携环境就很别扭,可能需要改代码禁用这个行为。