当前位置:首页 > 技术 > 正文内容

Sublime Text C++ 开发环境配置与竞赛编程优化

访客 技术 2026年6月29日 1

安装 Sublime Text

前往 Sublime Text 官网 下载并安装最新版本。推荐自定义安装路径以便后续管理。

配置 C++ 编译运行环境

确保本地已安装 MinGW 或其他支持 C++20 的编译器(如 g++)。通过以下步骤创建自定义构建系统:

  1. 点击菜单栏 Tools → Build System → New Build System
  2. 将默认内容替换为如下 JSON 配置,并保存为 C++20.sublime-build
{
  "shell_cmd": "g++ -std=c++20 -g \"${file}\" -o \"${file_path}/${file_base_name}.exe\"",
  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
  "working_dir": "${file_path}",
  "selector": "source.c++, source.cpp",
  "encoding": "utf-8",
  "variants": [
    {
      "name": "Run (Console)",
      "shell_cmd": "g++ -std=c++20 \"${file}\" -o \"${file_path}/${file_base_name}.exe\" && start cmd /k \"cd /d ${file_path} && ${file_base_name}.exe && pause\""
    },
    {
      "name": "File I/O Mode",
      "shell_cmd": "g++ -std=c++20 \"${file}\" -o \"${file_path}/${file_base_name}.exe\" && \"${file_path}/${file_base_name}.exe\" < input.txt > output.txt 2> error.log"
    },
    {
      "name": "Run in Panel",
      "target": "exec",
      "cmd": ["${file_path}/${file_base_name}.exe"],
      "working_dir": "${file_path}"
    }
  ]
}

该配置提供三种执行方式:

  • Run (Console):在独立 CMD 窗口中运行,支持输入交互
  • File I/O Mode:从 input.txt 读取输入,输出至 output.txt,错误信息写入 error.log
  • Run in Panel:在 Sublime 内部面板运行(不支持标准输入)

快捷键绑定

进入 Preferences → Key Bindings,在右侧用户配置中添加:

[
  {
    "keys": ["f5"],
    "command": "build"
  },
  {
    "keys": ["f6"],
    "command": "build",
    "args": { "variant": "Run (Console)" }
  },
  {
    "keys": ["f7"],
    "command": "build",
    "args": { "variant": "File I/O Mode" }
  },
  {
    "keys": ["ctrl+break"],
    "command": "cancel_build"
  }
]

实现 F5 构建、F6 控制台运行、F7 文件读写模式、Ctrl+Break 终止进程。

基础编辑设置

Preferences → Settings 中配置常用选项:

{
  "font_face": "JetBrainsMono Nerd Font",
  "font_size": 13,
  "tab_size": 4,
  "translate_tabs_to_spaces": true,
  "trim_trailing_white_space_on_save": "all",
  "ensure_newline_at_eof_on_save": true,
  "highlight_line": true,
  "line_padding_top": 2,
  "line_padding_bottom": 2,
  "caret_style": "phase",
  "save_on_focus_lost": true,
  "default_encoding": "UTF-8",
  "folder_exclude_patterns": [
    "*.exe",
    "__pycache__",
    ".git",
    "node_modules"
  ],
  "ignored_packages": ["Vintage"]
}

插件扩展与主题美化

通过 Command Palette (Ctrl+Shift+P) 安装 Package Control 后,可添加以下增强功能:

  • Catppuccin Theme:柔和配色方案
  • Material Theme:现代化 UI 主题
  • Terminus:内嵌终端模拟器,支持输入操作
  • LSP + LSP-clangd:启用语言服务器协议,实现智能补全与语法检查
  • ConvertToUTF8:解决中文编码乱码问题

对于 LSP-clangd,建议在项目根目录创建 .clangd 文件以启用 C++20 支持:

CompileFlags:
  Add:
    - -std=c++20
    - --target=x86_64-w64-windows-gnu

算法竞赛专用配置

安装 CppFastOlympicCoding 插件以提升刷题效率:

  1. 通过 Package Control 安装插件
  2. 修改其设置文件(Tools → FastOlympicCoding → Settings):
{
  "run_settings": [
    {
      "name": "C++",
      "extensions": ["cpp"],
      "compile_cmd": "g++ \"{source_file}\" -std=c++20 -O2 -o \"{file_path}/{file_base_name}\"",
      "run_cmd": "\"{file_path}/{file_base_name}\""
    }
  ],
  "tests_file_suffix": "_test"
}

结合 Competitive Companion 浏览器扩展(Chrome/Firefox),可在打开 Codeforces、AtCoder 等题目时自动抓取测试用例。需额外克隆 FastOlympicCodingHook 到 Packages 目录并与浏览器端口 12345 对接。

使用流程:

  1. 在浏览器打开题目页面并触发 Competitive Companion 抓取
  2. 在 Sublime 中右键选择 "Listen for Test Cases"
  3. 自动接收样例并生成测试文件
  4. 按 Ctrl+Alt+B 运行程序,自动比对输出结果

高效编辑技巧

功能快捷键
多光标选择相同词Ctrl+D / Alt+F3 全选
列选择鼠标右键+Alt拖动
行上移/下移Ctrl+Shift+↑/↓
复制当前行Ctrl+Shift+D
删除当前行Ctrl+Shift+K
注释切换Ctrl+/
代码折叠Ctrl+Shift+[ / ]
跳转到函数Ctrl+R
搜索文件Ctrl+P
命令面板Ctrl+Shift+P
分屏布局Alt+Shift+2~9
全屏模式F11

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。