用于Linux中c ++的Sublime Build系统,允许从文件输入

时间:2014-09-24 04:32:50

标签: c++ linux sublimetext2 sublimetext

我在linux中使用sublime我正在尝试使用从文件而不是STDIN获取的INPUT直接从sublime编译和运行我的c ++程序。 请帮助我在sublime build-file中编写代码 我得到了这个代码,但它不工作我认为它的Windows不适用于linux:

{
    "cmd" : ["g++", "$file_name", "-o", "${file_base_name}.exe"],
    "selector" : "source.c",
    "shell":true,
    "working_dir" : "$file_path",
    "variants": [
        {   
            "cmd": ["${file_base_name}" , "<" , "input.txt"],
            "shell": true,
            "name": "Run",
            "working_dir" : "$file_path"
        }
    ]
}

3 个答案:

答案 0 :(得分:3)

这是需要在sublime的构建系统中编写的最终代码,用于编译和运行从文件中获取输入。

{
    "cmd": ["g++ -Wall ${file} -o ${file_base_name}"], 
    "working_dir": "${file_path}",
    "selector": "source.c++",
    "shell": true,
    "working_dir" : "$file_path",

    "variants": [
                {   
                    "cmd": [ "${file_path}/${file_base_name}<input.txt"],
                    "shell": true,
                    "name": "Run",
                    "working_dir" : "$file_path"
                }
            ]
}

非常感谢MattDMo。

答案 1 :(得分:1)

我怀疑它不起作用的原因是因为g++正在创建.exe文件,而构建系统只查找source.c范围,而您的代码可能是{{ 1}}。将前两行更改为以下内容:

source.c++

你应该全力以赴。

答案 2 :(得分:1)

我只需添加一个配置,用于从文件加载输入并在Sublime控制台中显示输出(“Run in”)或将输出发送到其他文件(“Run in out”)。也许有人会发现它很有用。 (适用于Windows和Ubuntu)

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

"variants":
[
    {
        "name": "Run in",
        "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\" <$file_base_name.in"
    },
    {
        "name": "Run in out",
        "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\" <$file_base_name.in >$file_base_name.txt"
    }
]
}