unnamed

unnamed 使用指南

1. 这是一个什么站点?

默认:侧边栏在左,编辑器在右。

侧边栏里放着资源管理器与评测样例两个面板。

2. 怎么在浏览器里跑代码?

  1. 下载本地运行时。点侧边栏页头的齿轮图标,打开设置页签, 进入本地运行环境。
  2. 给 C++ 或 Python 3 点下载。 分别约 50MB 与 24MB,只下一次。
  3. 等按钮变成已就绪。下载期间会播报当前阶段。
  4. 确认评测里的引擎是本地 WASM 沙箱。新访客默认就是它, 不用填服务地址。
  5. 按 ⌘/Ctrl + Enter,或点评测样例面板页脚的 ▶。

跑之前侧边栏会自动展开,并切到评测样例。

想腾出空间:已就绪那行右侧有卸载。

3. 评测引擎怎么选?

在设置 › 评测 里切换。

引擎 在哪里运行 要填服务地址吗 要联网吗
本地 WASM 沙箱(默认) 你自己的浏览器,支持 C++ 与 Python 3 不用,它是内置引擎 首次要下运行时,之后离线可用
Piston 你自建的评测服务 要 要
Judge0 你自建的评测服务 要 要
自检(不执行代码) 本机演示 不用 不要

远端引擎要你自己部署服务,并把地址填进评测。

4. 在浏览器里跑有多快?

没有统一的缩放系数。

下面是实测数据:Apple M5,无头 Chrome。

两侧都开 -O2。

沙箱是 clang 8.0.1,本机是 clang。

沙箱那一列取运行段,与卡片上的耗时同口径。

用例 沙箱运行段 本机原生 倍率
纯计算 5×10⁷ 轮 xorshift 132 ms 74.4 ms 1.77×
顺序访存 8×10⁶ 个 int 26 ms 7.4 ms 3.51×
排序 50 万个数 60 ms 11.8 ms 5.08×
排序 200 万个数 247 ms 36.7 ms 6.73×

空程序那个对照为什么不算数?

空程序的对照是假象。

本机那 4.4 ms 全是进程启动开销。

沙箱那 3.0 ms 是 WASI 实例化。

两个数都不含计算,比了也没意义。

要对照,就只看真在算的那几行。

5. 怎么把题目抓进来?

用本站分发的浏览器插件 CC for Web。

  1. 打开设置 › 浏览器插件:那一栏会认出你的浏览器,只给你一条对应的装法 —— Firefox 给Firefox 版一键安装,其他 Chromium 内核的浏览器给下载按钮加手动加载步骤。
  2. (Chromium 内核)解压下载到的压缩包。
  3. (Chromium 内核)地址栏打开 chrome://extensions(Edge 是 edge://extensions),打开右上角的开发者模式。
  4. (Chromium 内核)点加载已解压的扩展程序,选中刚解压出来的目录。
  5. 回到本站,点那一组的重新检测。状态会显示版本号。
  6. 打开任意 OJ 题目页,点浏览器工具栏上的插件图标。

6. 判定码和时限怎么算?

每个用例一张卡片,内有输入与期望输出。

下方那块实际输出只读,右上角可以复制。

卡片中间那条空白就是「只跑这一个用例」的按钮。

判定码 含义
AC 程序正常结束,输出与期望输出一致
WA 程序正常结束,输出与期望输出不一致
CE 编译失败
TLE 运行时间超过当前时限
RE 运行时错误,程序非正常退出
ERR 评测服务连不上之类的环境问题,不是你的代码有问题

改动代码或输入后,上一轮结论会标成「结果待刷新」。

时限与耗时的口径是什么?

7. 文件树怎么用?

  1. 页头有两颗按钮:新建文件与新建文件夹。
  2. 建在哪个目录,看树里选中的那一行:点一下目录就选中它(新建落在它里面),点树里的空白处就是「什么都没选中」(新建落在根目录)。
  3. 想指定目录:右键该目录 › 新建文件 / 新建文件夹。
  4. 输入名字后回车。输入框只选中主干,改完不用补后缀。

右键文件还有重命名与删除。

新建文件的初始正文是什么?

新建文件时会按扩展名归到语言,把该语言的模板填进去:.cpp 用 C++ 模板、.py 用 Python 模板、.md 用题解模板。插件抓题时生成的代码文件也一样,打开就是模板内容。

认不出的扩展名(比如 .c、.txt)给一份空文件。三份模板在设置 › 模板里改,内容原样写入、不做变量替换;改坏了点每份右上角的恢复默认。那一节顶部的启用模板开关可以整体关掉模板:关掉后新建文件与抓题的代码文件都是空的,模板文本原样留着,再打开就能接着用。开关与模板都会随云端同步跟人走。

题目信息填什么?

抓来的题目按 <年月>/<OJ>/<难度> 分层,直接放在工作区根目录下,题名就是文件名。

题目信息与抓到的样例挂在代码文件自己身上,树里不会多出别的条目。

题解(Markdown / LaTeX)怎么写?

题解就是一个 .md 文件:页头点「新建文件」,把名字改成「题解.md」再回车。打开它,编辑器上方会多出一行工具栏,右端是字数与视图按钮。

  1. 工具栏 14 颗按钮:加粗、斜体、删除线、行内代码、标题、引用、无序列表、有序列表、代码块、链接、图片、公式、表格、分割线。悬停能看到键位,比如加粗是 Mod + B。
  2. 右端三颗视图按钮(仅编辑 / 双栏 / 仅预览)随时切换摆法,Mod + \ 挨个轮换;旁边那颗全屏按钮让编辑区占满窗口,按 Esc 退出。
  3. 公式写 $行内$ 与 $$独占一段$$,预览会渲染成 LaTeX。

预览要先下载一次渲染器(marked + KaTeX,约 578KB),和本地运行环境一样只下一次、可随时卸载。

题解不参与评测:打开 .md 时运行按钮会置灰,按 Mod + Enter 也不会进编译。

同一时刻添加测试样例也一并置灰 —— 样例是挂在当前文件上的,题解这类文件没有能跑它们的地方;灰掉的原因写在评测栏页脚。

8. 有哪些快捷键?

macOS 上 Mod 是 ⌘,其它平台是 Ctrl。

动作 默认组合键
运行全部用例 Mod + Enter
显示 / 隐藏侧边栏 Mod + B
切换侧栏面板 Mod + Shift + E
侧边栏左右对调 Mod + Shift + B
新增一条测试用例 Mod + Alt + Enter
打开 / 收起设置 Mod + ,

9. 界面怎么调?

  1. 切面板:点侧边栏页头左侧那枚胶囊开关。
  2. 开关设置页签:点页头那颗齿轮。
  3. 收起侧边栏:单击两栏中间的分隔条,再点一次展开。
  4. 也可以按住分隔条拖到贴边,往外拖回来即展开。
  5. 换边:设置 › 外观 › 侧边栏位置。
  6. 放大界面:设置 › 外观 › 界面缩放,默认 100%。
  7. 换配色:设置 › 外观 › 主题,深色 / 浅色。

收起只是不显示。用例与文件树的展开状态都不会丢。

键盘:Tab 聚焦分隔条后,用 ← / → 微调宽度。

触屏上分隔条的热区会自动加宽,手指更好抓。

拖到贴边才折叠,离开边缘 60px 才展开,两个阈值错开。

10. 怎么装到设备、离线用?

  1. 打开设置 › 应用。
  2. 浏览器判定可安装时,安装按钮才是亮的。
  3. 点安装,按提示确认。
  4. 之后从桌面或主屏图标打开,就是独立窗口,没有地址栏。

另外,除了网页版,macOS / Windows / Android 的原生版本正在开发中:编译与运行都在本机完成, 不再依赖浏览器沙箱,因此更快、也能用上完整的本地工具链。网页版不受影响、会继续维护; 原生版本能发布时,会在这里补上获取方式。

桌面版还会多出第二种工作区。在设置 › 工作区里可以直接打开本机的 一个文件夹:文件树画的就是那个目录本身,新建、改名、删除动的都是磁盘上真实的文件,在别的编辑器里 改了它也会自动更新。题目信息与抓到的样例存在目录里的 .unnamed/ 下(不在文件正文里), 目录搬到哪台机器都跟着走。想换回来,在同一个地方点回到虚拟工作区即可,界面会重新加载。

11. 常见问题

代码会上传到服务器吗?

用本地沙箱不会,代码不离开这台设备。

切到 Piston 或 Judge0 时,代码会发到你填的地址。

需要联网吗?

第一次要下运行时,约 50MB。

下过之后常驻缓存,可以断网用。

清了浏览器数据就要重下一次。

支持哪些语言?

本地沙箱支持 C++ 与 Python 3。

其它语言请切到 Piston 或 Judge0。

支持范围取决于你所连的那台服务。

编辑器有自动补全吗?

有,但只给 C / C++ / Python 三种语言的代码文件(.c、.cpp、.py)。打几个字母候选框会自动弹出:方向键翻动,Tab 采用当前那条,Esc 关掉。

候选分三类:关键字、常用标准库(vector、sort、printf、print)与代码片段(main、fori、ifmain)。片段带占位符,采用后按 Tab 在占位符之间跳。

它是查表,不是语言服务:不认变量名与类型、不能跳转定义,也不会实时报错;同一个文件里出现过的词也会一起建议。.md 等其它文件不参与。

为什么第一次运行明显更慢?

首次要下运行时。

之后每份新代码的第一个用例要付一次编译开销。

同一份代码连续跑多个用例只编译一次。

后台还会生成一份 STL 预编译头,排在空闲时间,不阻塞操作。

它只覆盖最常用的 5 个标准库头,失败也不影响正常编译。

为什么耗时和别的评测服务对不上?

这里的耗时只计运行段,不含编译与排队。

所以数字比按总耗时统计的平台小。

不同引擎与不同设备之间也不适合直接比。

数据存在哪里?

偏好、草稿、样例与两栏比例存在 localStorage 里。

文件树与文件正文在 IndexedDB 里。

预编译头也在 IndexedDB 里。

都只在这台设备的这个浏览器里,清除浏览器数据会一并清掉。

上传到云端的设置是公开的吗?

是。读取不需要登录,有两条路:在设置 › 云端同步里填上 Codeforces 用户名、点导入;或者把用户名接在站点网址后面,形如 https://www.998244353.best/he-jie。装成独立窗口的应用(PWA)没有地址栏,用前者。

导入与登录是两件事:导入只是取回一份公开的配置,不用取码验证,也不会把这台设备绑到那个用户名上。

导入、上传或登录成功之后,地址栏会自动变成 网址/用户名 的形式(形如 https://www.998244353.best/he-jie)—— 这条地址记的就是「我现在用的是这套配置」,可以直接收藏,也可以原样发给别人。

所以点上传本机设置就等于同意公开这份配置。

上传的只有偏好类项:主题、快捷键、界面缩放、侧边栏位置、两栏比例、运行时限这些。

判题服务器地址、手写的测试用例、文件树与文件正文都不会上传。

插件抓不到题目怎么办?

先确认本站这个页面是开着的。

再看浏览器插件里是否显示了版本号。

没显示就点重新检测;仍不行就刷新本页。

插件被重载过而页面一直没刷新时,会失联。

12. 致谢与开源许可

感谢下面这些项目的作者与维护者。

本站自己写的只有界面、交互与判题逻辑。

完整授权文档(含每个组件的版本号、许可证与落点): 第三方开源组件与许可。

组件 许可 在这里负责什么
Vue MIT 界面的框架
Monaco Editor(微软,VS Code 的编辑器内核) MIT 代码编辑器;随它一并分发进来的还有 marked(MIT)与 DOMPurify(MPL-2.0 或 Apache-2.0 双许可)
runno(@runno/wasi) MIT 本地沙箱的 WASI 运行时:起实例、喂输入,以及超时(TLE)时把它中断掉
LLVM / clang 与 lld Apache-2.0 WITH LLVM-exception 本地编译 C++ 的编译器与链接器(wasm 版,8.0.1)
wasi-libc Apache-2.0 WITH LLVM-exception 上面那套 clang 用的 C 标准库与启动代码
libc++ / libc++abi MIT C++ 标准库(<vector>、<string> 这些)
compiler-rt Apache-2.0 WITH LLVM-exception 编译器运行时里那些内建函数
CPython PSF License 本地跑 Python 3.11(wasm 构建)
seti-ui MIT 文件树里的 C++ 图标
Competitive Companion MIT 浏览器插件 CC for Web 的上游项目(本站用的是改造版)