惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Jina AI
Jina AI
Stack Overflow Blog
Stack Overflow Blog
量子位
博客园_首页
Vercel News
Vercel News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Forbes - Security
Forbes - Security
IT之家
IT之家
N
News and Events Feed by Topic
S
Security Affairs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Webroot Blog
Webroot Blog
Recorded Future
Recorded Future
L
LangChain Blog
Y
Y Combinator Blog
AI
AI
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Know Your Adversary
Know Your Adversary
AWS News Blog
AWS News Blog
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
L
Lohrmann on Cybersecurity
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google Online Security Blog
Google Online Security Blog
V2EX - 技术
V2EX - 技术
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
I
Intezer
T
Tenable Blog
G
Google Developers Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Troy Hunt's Blog
L
LINUX DO - 最新话题
云风的 BLOG
云风的 BLOG
C
CXSECURITY Database RSS Feed - CXSecurity.com
有赞技术团队
有赞技术团队
O
OpenAI News
P
Proofpoint News Feed
TaoSecurity Blog
TaoSecurity Blog
C
Check Point Blog
Last Week in AI
Last Week in AI
S
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
Blog — PlanetScale
Blog — PlanetScale

Frederick's Blog

通过 1Panel 部署 Astro 站点到服务器——公开仓库篇 | Frederick's Blog 用违背道德的行为,抨击合理的事实? | Frederick's Blog 博客三周年:缝缝补补的过去 | Frederick's Blog 观纪录片《苏轼》(下) | Frederick's Blog 观纪录片《苏轼》(上) | Frederick's Blog 《南京照相馆》:在战争的废墟上,显影人性的底片 | Frederick's Blog 观影 |《南京照相馆》 | Frederick's Blog Windows 7 终端开启右键粘贴 | Frederick's Blog 算法竞赛:为什么要写总结? | Frederick's Blog OI 赛制的实用工具 | Frederick's Blog 博客两周年,换框架? | Frederick's Blog 数据备份太重要了 | Frederick's Blog WeChat(微信国际服务)与微信(国内服务)的《隐私协议》的天壤之别(其中最让人愤怒的) | Frederick's Blog 题解 | 字符串反转 | Frederick's Blog 题解 | 素数环 | Frederick's Blog Codesign:高效设计的秘诀 | Frederick's Blog Github:设置两步验证(2FA) | Frederick's Blog
算法竞赛:拥有一个顺手的 IDE · Windows 篇 | Frederick's Blog
2025-07-02 · via Frederick's Blog

如果你第一次学习 OI,你一定会了解一个名为 Dev-C++ 的编辑器。

Dev-C++

▲ Dev-C++

这的确是一个易于上手的编辑器,教练为我们安装的版本自带编译器、且不需要过多的配置就可以上手写代码。

但是他的缺陷也暴露了出来:Dev-C++ 本质上作为一个开发编辑器,其开箱即用(不需要个性化设置)的特点已经局限了他(对于我们算法竞赛不是特别的方便)。那么,我们又该何从下手呢?

选择一个编辑器

市面上的代码编辑器有很多,比如微软的 Visual Studio CodeCP Editor、Sublime 公司的 Sublime Text

这三款编辑器是非常适合作为 OIer 日常使用的,其中 CP Editor 是一款开箱即用的,支持导入测试点的编辑器,如果你不喜欢折腾,那么 CP Editor 一定是你的不二之选!

Sublime Text

Sublime Text 是一款轻量级编辑器,拥有许多可以个性化的内容。

如果你想要尝试,请跟随本文操作、配置。

注意:本教程为 Windows 教程!

下载 Sublime Text

打开官网:sublimetext.com

官方网站

▲ Sublime Text 官网

打开之后不要被满屏的英文吓住,直接点击“DOWNLOAD FOR WINDOWS”下载。

下载之后一路下一步安装,打开,你就可以继续跟着本文配置了!

(可选)插件安装器

首先按下 Control + Shift + P 打开操作面板,输入 Install 后点击“Install Package Control”安装插件安装器,等待一会会出现弹窗提示,然后就安装好了!

(可选)中文

此操作需要安装插件安装器。

在安装好插件安装器的情况下,按下 Control + Shift + P 打开操作面板,输入 Install 后选择 “Package Control: Install Package”。

操作 1

加载比较慢,不要着急,等他弹出来之后输入 Chinese,然后选择“ChineseLocalizations”

操作 2

安装的时候等待一下,会弹出来一个叫“Package Control Messages”的文件(会帮你打开),上面给出了方法。

操作 3

好像最新版的插件会直接给你调好(雾)。

你就可以愉快的使用中文了!

个性化

首先是编辑器设置,操作方法见下图:

操作方法

打开之后的画面可能令你不解:为什么是一个我看不懂的代码?

其实这是一个比较不错的优点,你可以很快地迁移配置在各个电脑之间。

如果你熟悉英文,那么恭喜你,你可以通过参照左边的默认配置来自定义。如果你不熟悉,没有关系,我可以给你一个示范。

{
    "spell_check": true,
    "indent_to_bracket": true,
    "draw_white_space": ["selection", "trailing", "isolated"],
}

这个文件其实就只达到了一个目的:显示行尾空格、缩进。

这有利于防止玄学错误,对于 OIer 来说已经够用了!

如果你要调整颜色主题,没问题,按照下图操作即可:

主题

这里的调整有一个优点,你可以直接在一个类似于之前命令面板的可视化模块中调整主题,并且支持实时预览,你可以使用上下键切换并查看效果。

编译与代码框架

如果说上方的教程帮助你有一个更舒适的代码撰写环境,那么接下来的配置则让你的编写与编译更加方便!

接下来的内容相对无脑,小心你的 CtrlCV 键被按废。

首先按下 Control + Shift + P 打开操作面板,输入 Browse,选择“Preferences: Browse Packages”,会打开一个文件夹。

你也可以直接访问这个路径(理论上都在这个位置):

C:\Users\[你的电脑用户名]\AppData\Roaming\Sublime Text\Packages

可能会出现一些文件夹,我们进入 User 文件夹。

新建一个叫 [名字随意].sublime-build 的文件(请打开后缀名显示)。

双击使用 Sublime Text 打开,粘贴这个文件:

{
    "encoding": "utf-8",
    "working_dir": "$file_path",
    "shell_cmd": "g++ -Wall \"${file}\" -o \"${file_path}/${file_base_name}\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.c++",

    "variants":
    [
        {
        "name": "Run",
            "shell_cmd": "g++ -Wall -std=c++14 -O2 \"${file}\" -o \"${file_base_name}\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
        }
    ]
}

保存退出,在正式编译之前我们还需要做一点事情。

安装编译器

由于笔者也忘了怎么安装 C++ 编译器了,请自行百度/必应:“C++编译器安装”

设置编译器环境变量

如果你是在网上搜的安装教程,他可能已经教你如何配置环境变量了,但如果你没有配置,请看这里。

首先打开开始菜单,搜索“环境变量”,打开之后你需要在上方的“用户变量”进行如下操作:点击“新建” → 在“变量名”中输入 PATH → 在“变量值”中输入你的编译器目录,类似于 C:\Program Files (x86)\[你所安装的编译器名字,比如 MinGW64]\bin → 点击“确定” → 点击“确定”。

当然如果你之前装过如 Python 等工具,你的 PATH 变量已经被占用,不用担心,按照这个步骤操作:双击“PATH”变量那一行 → 在“变量值”的原有内容后加一个英文分号(;) → 输入你的编译器目录,类似于 C:\Program Files (x86)\[你所安装的编译器名字,比如 MinGW64]\bin → 点击“确定” → 点击“确定”

完成后打开命令提示符(cmd),输入 g++ -v ,只要能正确输出版本等信息就说明配置成功了!

写下你的第一个程序

回到 Sublime Text 中,写好一个带有输入输出功能的程序,按下 Control + B 开始运行,会弹出一个类似命令面板的界面。

选择器

选择“[你刚刚创建的那个 .sublime-build 文件的文件名] - Run”那一个选项,就可以一键编译运行(会弹出来一个终端窗口供你输入输出),运行成功后就代表着编译系统的配置成功!

代码模板

在 Dev-C++ 中,我们都知道可以通过设置使新建文件时能够为我们自动补全头文件。

虽然 Sublime 不能够实现这个功能,对,不能够!但是我们仍然可以顺利偷懒!

首先按下 Control + Shift + P 打开操作面板,输入 Browse,选择“Preferences: Browse Packages”,会打开一个文件夹。

你也可以直接访问这个路径(理论上都在这个位置):

C:\Users\[你的电脑用户名]\AppData\Roaming\Sublime Text\Packages

可能会出现一些文件夹,我们进入 User 文件夹。

新建一个叫 [名字随意].sublime-snippet 的文件(请打开后缀名显示)。

用 Sublime Text 打开,粘贴这个代码,然后修改其中的内容:

<snippet>
    <content>
<![CDATA[
[你的代码框架]
]]>
    </content>
    <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
    <tabTrigger>[关键词]</tabTrigger>
    <description>[取名随意]</description>
    <!-- Optional: Set a scope to limit where the snippet will trigger -->
    <scope>source.c, source.c++</scope>
</snippet>

如果你不理解,你可以参考这个例子:

<snippet>
    <content>
<![CDATA[
#include <bits/stdc++.h>
#define op if (debug)

using namespace std;
typedef long long lo;
const bool debug = 0;

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

	return 0;
}
]]>
    </content>
    <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
    <tabTrigger>_algo</tabTrigger>
    <description>竞赛模板</description>
    <!-- Optional: Set a scope to limit where the snippet will trigger -->
    <scope>source.c, source.c++</scope>
</snippet>

这样,每当你新建一个 .cpp 的文件时,输入上面代码的[关键词] 然后在弹出的菜单中选择你的预设,就可以为你补全框架了!

大概是这样

▲ 大概是这样的吧

总结

至此,你应该已经配置好了一个完整的 Sublime Text 并且可以用于竞赛的调试代码,希望本篇文章可以为你提高效率。

彩蛋:让你的 Sublime Text 像 CP Editor 一样

在安装好插件安装器的情况下,按下 Control + Shift + P 打开操作面板,输入 Install 后选择 “Package Control: Install Package”。

操作 1

加载比较慢,不要着急,等他弹出来之后输入 CppFastOly,然后选择“CppFastOlympicCoding”安装,稍等一会安装完成。

操作 2

请注意左下角的安装状态,当显示安装完成之后你就可以愉快的使用了。

由于篇幅原因,请各位自行前往官方 GitHub 学习使用:https://github.com/Jatana/FastOlympicCoding

完结撒花!感谢各位阅读!