-
Notifications
You must be signed in to change notification settings - Fork 25
[zh_CN] 8. 配置编辑器
在前面的题目界面中,我们提到了题目界面可以和你的代码编辑器互动。我们在此着重讲讲如何实现。
在题目界面的左下角,有两个按钮,分别对应着 传输当前打开的这道题目 以及 传输所有已加载的题目。在获取一次比赛的题目后,你可以在看题的时候边看边点,也可以一次性把所有题目都传输到编辑器。在安装适当插件后,代码编辑器就会识别传入的数据,并且提供测试方案。
需要注意的是,CCHv2 的信息传输方式和 Competitive Compaion 基本一致。Competitive Compaion 是一个浏览器插件,可以在一道题下通过简单的点击将题目传输到代码编辑器中。在运作过程中,Competitive Compaion 需要一个端口进行数据发送,这对应着 CCHv2 设置中的交流端口。也就是说,在接下来我提到端口的时候,请务必记住将这个端口加到设置界面中去。
目前来说,直接支持这个插件的编辑器中最流行的便是 CP Editor。在下载之后,只需要前往设置界面打开 Competitive Companion 插件,就可以直接传输数据,无需配置。因为 CP Editor 的端口为默认端口,所以你不需要对设置进行更改。 CP Editor 在获取完毕后会打开一个新的标签页,其中自动填入了这道题目的数据。
VS Code 需要安装插件才可以支持此功能。你需要前往这里下载插件 Competitive Programming Helper (cph)
。下载之后,打开 VS Code,新建一个文件夹并且拖到 VS Code 让它打开,然后就可以准备传输数据了。在此之前,建议先前往插件的扩展设置(在扩展页面进入这个插件的介绍页,就可以找到设置齿轮了),在里面提前设置好默认语言和模板代码。
在配置完成后,传入数据时,VS Code 就会在文件夹下新建一个文件代表这道题目的代码,样例同样是自动加载。
Sublime Text 中也有类似的插件,叫做 CppFastOlympicCoding。你可以在 Package Control 中下载这个插件。但是这个插件本身没有接收传入数据的功能,所以我将网上一位大佬的代码经过修改后,写了一个适配 Sublime Text 的数据接收插件。这个插件需要使用 12345 作为端口,所以请务必记得加入到设置中。
目前这个插件储存在洛谷题目仓库中,前往附件即可下载。题目描述中放置的就是专门为 C++ 选手准备的配置方案,在这里也放出来。
请确保你安装了 Package Control 并且配置好了 g++。
- 利用 Package Control 安装 CppFastOlympicCoding。按 Ctrl+Shift+P,输入 FastOlympicCoding 后找到 Open Settings,打开后在右方输入:
{
"lint_enabled": false,
"close_sidebar": false,
"tests_file_suffix": "__tests" // 非 Windows 请删除
}
- 安装 sublimelinter 和 sublimelinter-gcc,然后输入 sublimelinter settings,打开后在右边加入以下内容,然后调整 gcc / g++ 版本。
{
"linters":
{
"gcc": {
"disable": false,
"executable": ["gcc"],
"args": ["-fsyntax-only", "-std=c90"],
"I": [
"${file_path}/include",
"${folder}/include",
"/usr/local/include",
],
"excludes": [],
},
"g++": {
"disable": false,
"executable": ["g++"],
"args": ["-fsyntax-only", "-std=c++11"],
"I": [
"${file_path}/include",
"${folder}/include",
"/usr/local/include",
],
"excludes": [],
},
},
}
-
下载附加的 FastOlympicCodingHook.zip,然后在 Sublime Text 的菜单栏中选择首选项 -> 浏览插件目录,然后新建一个文件夹
FastOlympicCodingHook
,把刚刚的内容解压放进去(注意不要包含子文件夹)。在打开文件夹中的设置文件FastOlympicCodingHook.sublime-settings
进行配置后就可以开始用了。⚠ 模板位置和文件夹位置需要满足不包含空格等空白字符,并且放在系统盘,否则插件无法读取。
-
你可以使用一些可替换参数。以下为使用例:
/*******************************
| Author: tiger2005
| Problem: %$Problem$%
| Contest: %$Contest$%
| URL: %$URL$%
| When: %$Time$%
|
| Memory: %$MemoryL$% MB
| Time: %$TimeL$% ms
*******************************/
在安装完插件后,传输题目,你应当可以看到一个新的文件被打开。在写完代码后,可以参考FastOlympicCoding 仓库中的介绍,使用快捷键进行测试等操作,比如说 Ctrl+Alt+B(MacOS 为 Ctrl+B)进行测试,Ctrl+K Ctrl+P 展开或者收起右侧栏等等,此处不再赘述。