Sublime on NOI Linux

· · 科技·工程

由于 NOI Linux 内软件全国统一,我想通过该博客讲述一下如何快速使用 NOI Linux 中的 Sublime Text。

观前提醒:如果您要在赛场上使用,需要背一下 json 文件,懒得背的可以左转 Code::Blocks 或者 Geany 了。

1. 配置编译系统

由于赛时没有网络,Sublime Text 是英文界面,但是稍微是个初中生就可以看懂。

点击 Tools-> Build System -> New Build System,然后看到空白的 json 文件不要慌张。

打开文件资源管理器,点击其他位置->计算机,注意需要打开显示隐藏文件:

然后进入 根目录/opt/sublime-text 文件夹,这里就是 sublime 的安装位置。

然后进入 Packages 文件夹,找到 C++.sublime-package 文件,直接双击打开。

这其实是一个压缩包,然后找到 C++ Single File.sublime-build 文件。

双击打开:

直接复制该文件内容到 sublime 你新建的 build system 中。

variants 中 'shell_cmd' 一栏中的指令改为:

x-terminal-emulator -e bash -c \" g++ '${file}' -o '${file_path}/${file_base_name}' ; '${file_path}/${file_base_name}' ; read -p '\n--------------\nPress Any command to continue...'\"

个人认为这串代码还是比较好记的。

\n--------------\nPress Any command to continue... 是可以自定义的,表示按任意键继续。

然后在 g++ '${file}' -o '${file_path}/${file_base_name}' 后也是可以添加其他编译选项的,比如:std=c++14-fsanitize=address,undefined-Wall,-O2

然后保存即可,文件名自定义,注意检查是不是保存到的

/home/${Your_Computer_Name}/.config/sublime-text/Packages/User 路径上。

然后此时按下 ctrl + shift + b,然后选择 ${Your_Build_system_name}_Run 就可以编译并运行代码了。

以下是笔者的配置:

{
    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c++",

    "variants":
    [
        {
            "name": "Build & Run",
            "shell_cmd": "x-terminal-emulator -e bash -c \" g++ '${file}' -o '${file_path}/${file_base_name}' ; '${file_path}/${file_base_name}' ; read -p '\n--------------\nPress Any command to continue...'\""
        },
        {
            "name": "Build",
            "shell_cmd": "g++ '${file}' -o '${file_path}/${file_base_name}' "
        },
        {
            "name": "Run",
            "shell_cmd": "x-terminal-emulator -e bash -c \" '${file_path}/${file_base_name}' ; read -p '\n--------------\nPress Any Command to Continue...'\""
        }
    ]
}

2. 更改快捷键

Preferences->Key-Binding 打开快捷键配置页面。

左侧 system-setting 中 Ctrl + f 查找 buildctrl+shift+b

然后复制到右侧 user-setting 中,

args 花括号内内容修改为:

{
  "variants": "Run"
//如果你没有在创建Build system 的时候修改 variants 中 name 的值的话,默认是 Run,否则将你修改的值复制过来即可。
}

然后将 "key" 后面的字符串修改为你喜欢的键位即可。

这是笔者的配置:

[
    {
        "keys": ["f5"],
        "command": "build",
        "args": {
            "variant": "Build & Run"
        }
    }
]

这里还有一些 Sublime 常用快捷键,也可以通过 Ctrl + f 查找然后复制到 user-setting 中,修改键位。

以下是Sublime默认键位

3. 杂项设置

4. 附上一份 Linux 上的对拍代码

#include <bits/stdc++.h>
using namespace std;

signed main() {
    int tmp = 0;
    while(1) {
        cout << "#Test " << ++ tmp << ": ";
        system("./data > input.in");
        system("./good < input.in > good.out");
        system("./bad < input.in > bad.out");
        if(system("diff good.out bad.out")) {
            cout << "Wrong Answer\n";
            return 0;
        } else {
            cout << "Accept\n";
        }
    }
    return 0;
}