考场配置 sublime text

缪凌锴_Mathew

2024-10-28 11:24:24

Tech. & Eng.

前言

sublime text 的好处:考场上肯定有(不会真有什么考场没有 sublime text 吧),比 DevC++ 好用,界面好看(?),代码快捷键更多。

文章图片加载可能较慢。

如何运行 C++ 程序

提示:你需要先配置环境变量。

先打开你的 .cpp 文件,按下 Ctrl+Shift+B 或者 Ctrl+B,点击 C++ Single File - Run

之后你会发现直接点 Ctrl+B 就行了,它会自动记住你上次选择的 Build System。

然鹅你发现:这控制台输入不了。于是你需要文件读写:

freopen("data.in","r",stdin);
freopen("data.out","w",stdout);

运行完之后控制台会有一行 [Finished in ?s] 的提示,这个运行时间是不准的(包含编译时间)。

如何更好地调试——分屏

你可能会觉得:这只能文件读写这不是太麻烦了吗,还不如 DevC++ 弹黑窗。

但是别忘了:sublime text 还是一个非常厉害的文本编辑器(开个 100+MB 的大样例都不成问题)。

我们在 data.in 界面分屏,点击 View-Groups-Move File to New Group(快捷键 Ctrl+K,Ctrl+Up

然后你就发现 data.in 分屏到了右半边。

然后拖动 data.out 卡片到右侧分屏,再次操作 Move File to New Group,然后就可以分屏成这样:

只要运行左侧的代码,右侧输出的结果就可以动态更新,这样就好调试很多了。

当然可以把 data.ans 也分屏进去:

分屏还原快捷键:Alt+Shift+1

左侧文件目录

点击 File-Open Folder,选择你的代码存放目录。

然后左侧会出现文件目录,双击文件目录里的文件可以打开。

配置编译快捷键

Ctrl+B 太难用了,别急,配个快捷键。

点击 Preferences-Key Bindings

在左侧的默认配置内搜索(快捷键 Ctrl+F)"ctrl+b"。

找到这一句话:

{ "keys": ["ctrl+b"], "command": "build" },

复制到右侧,并且将 "ctrl+b" 改为你想要的快捷键:

保存后就可以使用了。

sublime text 快捷键列表

编译选项配置

进入目录 C:\Program Files\Sublime Text 3\Packages,找到文件 C++.sublime-package

这时候你打不开这个文件。假如你有 WinRAR 或者 7-Zip 之类的压缩软件,用它打开;没有的话把文件后缀名改为 .zip 之后再用文件资源管理器打开。

解压之后找到 C++ Single File.sublime-build,打开。

shell_cmd: 里面的 g++ 后面加上你的编译选项

C++ Single File.sublime-build 压缩回 C++.sublime-package 并保存,重启 sublime text 即可使用。

当然也可以选择 Tools-Build System-New Build System

C++ Single File.sublime-build 里的内容粘贴进去并保存,之后在代码界面 Ctrl+Shift+B,选择你刚刚命名的 Buildm System - Run。

考场建议配置 -O2 -std=c++14 -static -Wl,-stack=1024000000

弹 cmd 运行——不需要文件读写

打开你配的 C++ Single File.sublime-build,发现编译运行的配置是这样的:

{
    "name": "Run",
    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
}

再这段后面打一个逗号,新建一段:

{
    "name": "Debug",
    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && start cmd /c \"${file_path}/${file_base_name} & pause\""
}

需要背一下这新的一段需要加什么:

原本最后是 && \"${file_path}/${file_base_name}\"

加上启动 cmd 调试,变为 && start cmd /c \"${file_path}/${file_base_name}\"

但你发现 cmd 最后没有 pause,变为 && start cmd /c \"${file_path}/${file_base_name} & pause\"

在代码界面 Ctrl+Shift+B,选择你刚刚命名的 Buildm System - Debug。

这时候就可以直接弹出 cmd 运行代码了,解决世纪难题:必须文件读写。

弹 cmd 运行——文件比较

知道 Build System 里面那个语句的原理后你就可以召唤 cmd 作妖了。

比如:

{
    "name": "Run And Diff",
    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\" && start cmd /c \"fc ${file_path}\\data.out ${file_path}\\data.ans & pause\""
}

就能在运行完毕后弹出 cmd 比较(fc 命令)你的输出文件和答案文件。

当然还可以根据文件名找到 .out.ans

{
    "name": "Run And Diff(By Name)",
    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\" && start cmd /c \"fc ${file_path}\\\"\"${file_base_name}.out ${file_path}\\\"\"${file_base_name}.ans & pause\""
},