提示

一些可能会有用的提示

使用 stderr 进行调试

目前,CP Editor 并没有一个内置的 GUI 调试器,但这不意味着使用 CP Editor 就难以调试了。

除了单步调试,最常用的调试方法就是输出一些变量。你还记得你试图分辨调试输出和正常输出的那些日子吗?使用 CP Editor,你就不需要这样做了。

关键在于:使用 stderr 来输出调试信息。在 C++ 中,这意味着在输出时使用 cerr 而不是 cout。CP Editor 会将你的程序的 stderr 展示在“消息”区域。

只在选中的测试点上运行

在 CP Editor 中,你不需要总是在所有测试点上运行。

为了告诉 CP Editor 你不想在某个测试点上运行,你只需要取消选中这个测试点。你还可以使用“更多”菜单来管理勾选情况:全选,取消全选,取消选择已通过的(当你通过了大多数测试点,而只想在少数未通过的测试点上调试时,这非常有用)以及反选。

如果你想在单个测试点上运行,你还可以点击位于测试点的“运行”按钮。

解决有多解的题目时,将输出复制到答案

有时你会解决一些有多个正确答案的题目。OJ 有 Special Judge,但你没有 Special Judge,也没有时间自己写一个。让这些测试点保持 WA 状态可能让人看着不爽,甚至带来不便,因为你在修改代码后需要再次检查它们是否正确。

CP Editor 提供了一个解决方法:将输出复制到答案。这可以在答案编辑框的右键菜单中为单个测试点进行,也可以在“更多”菜单中为所有选中的测试点进行。有了这个功能,你就能够轻松地将已通过的输出复制到答案,这样只要它们不改变就一直会是 AC 状态。

加载,编辑以及保存测试点

你可以右键单击测试数据框,从而实现从文件中加载测试数据,在更大的窗口中编辑测试点,或者将测试点保存为文件。

testlib 评测器在运行时编译

testlib 评测器在切换评测器或设置变更时会重新编译,所以使用 testlib 评测器时运行后未能及时反馈结果是正常现象。

将文件拖入

你可以直接将文件拖入编辑器或测试数据框中。

将文件拖入编辑器中会打开该文件,而将文件拖入测试数据框的输入/答案框中,会自动用该文件填充该框。

代码编辑器中的快捷键

除了菜单中提及的快捷键之外,你还可以使用 Qt 中的 只读快捷键修改快捷键

CP Editor 还提供一些隐藏的快捷键:Tab(当有文本被选中时)和 Shift+Tab 用于缩进和取消缩进,Ctrl+EnterCtrl+Shift+Enter 分别用于在当前行之前和之后插入空行,Shift+Delete 用于删除当前行。

切换标签页

你可以使用 Ctrl+TabCtrl+Shift+Tab 以切换到下一个/上一个标签。

标签栏的右键菜单

你可以通过右键点击标签调出一个菜单,包括:

  • 管理标签页:关闭其它标签页,关闭右侧标签页,等等。
  • 复制标签页。当你想要在不影响当前代码的同时做一些实验性的改动,或者用不同的方法解决一道题目而不想重新获取样例时,这非常有用。
  • 为单个标签页设置编译命令/时间限制。也许在你解决一道奇特的题目时可以用到。
  • 在文件管理器中查看源文件/可执行文件。轻松地找到你的代码和可执行文件。
  • 管理题目链接:在浏览器中打开题目,设置 Codeforces 链接,等等。

设置页面中的快捷键

在设置页面中,你可以使用 Ctlr+DCtrl+RCtrl+S 作为 “默认”,“重置” 和 “应用” 的快捷键。

你还可以使用 Ctlr+TabCtlr+Shift+Tab 以实现各设置页面间的快捷切换。

切换视图模式

  • 编辑器模式:你可以专注于你的代码。
  • IO 模式:你可以仔细检查输出和错误。
  • 分屏模式:你可以同时看到代码和测试用例。

你可以在 设置 中设置一个快捷键来快速切换到编辑器模式。

从命令行启动 CP Editor

CP Editor 支持在命令行下启动,可以通过执行 cpeditor --help 命令获得更多详情。

在 Windows 下,更推荐使用类 UNIX 的终端(如 Git Bash)。

在命令行下,你可以通过 cpeditor <path> 来在指定的位置创建新文件,或是用 cpeditor --cpp <directory> 打开一个目录下的所有 C++ 源代码,还可以通过 cpeditor --no-restore-session 暂时禁用 在启动时恢复上一次会话

CP Editor 在接收到 SIGINT 和 SIGHUP 命令时会正常关闭,因此如果你在命令行下启动 CP Editor,你可以通过按下 Ctrl+C 退出,而不必担心丢失任何工作。