提示
使用 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+Enter 和 Ctrl+Shift+Enter 分别用于在当前行之前和之后插入空行,Shift+Delete 用于删除当前行。
切换标签页
你可以使用 Ctrl+Tab 和 Ctrl+Shift+Tab 以切换到下一个/上一个标签。
标签栏的右键菜单
你可以通过右键点击标签调出一个菜单,包括:
- 管理标签页:关闭其它标签页,关闭右侧标签页,等等。
- 复制标签页。当你想要在不影响当前代码的同时做一些实验性的改动,或者用不同的方法解决一道题目而不想重新获取样例时,这非常有用。
- 为单个标签页设置编译命令/时间限制。也许在你解决一道奇特的题目时可以用到。
- 在文件管理器中查看源文件/可执行文件。轻松地找到你的代码和可执行文件。
- 管理题目链接:在浏览器中打开题目,设置 Codeforces 链接,等等。
设置页面中的快捷键
在设置页面中,你可以使用 Ctlr+D,Ctrl+R 和 Ctrl+S 作为 “默认”,“重置” 和 “应用” 的快捷键。
你还可以使用 Ctlr+Tab 和 Ctlr+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 退出,而不必担心丢失任何工作。