提示

一些可能会有用的提示

使用 stderr 进行调试

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

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

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

只在选中的测试点上运行

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

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

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

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

有时你会解决一些有多个正确答案的题目。OJ 有 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-hot-exit 暂时禁用 在启动时恢复上一次会话

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



最后修改 January 31, 2021: ci: use htmltest (#137) (5cf98c2)