如何在Windows系统中使用Sublime Text在外部控制台中运行程序?

我设法为C ++configurationSublime Text 2,现在我可以编译我的代码(使用MinGW编译器)。

不幸的是,Sublime Text控制台不能支持任何types的C ++input。

我想打开我编译的程序在外部控制台(例如窗口的terminal)。 我试图使用“呼叫”或“CMD”,但无法使其工作。 (它仍然在控制台中打开文件)

这是我的构buildconfiguration:

{ "cmd": ["C:\\MinGW\\bin\\mingw32-g++.exe", "-Wall", "-time", "$file", "-o", "$file_base_name"], "cmd": ["call", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "working_dir": "${project_path:${folder}}", "selector": "source.c", "shell": true, "encoding": "latin1" } 

Solutions Collecting From Web of "如何在Windows系统中使用Sublime Text在外部控制台中运行程序?"

试试这个:

 { "cmd": ["C:\\Dev-Cpp\\bin\\mingw32-g++.exe", "-static", "-Wall", "-time", "$file", "-o", "$file_base_name.exe", "&&", "start", "$file_base_name"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "working_dir": "${project_path:${folder}}", "selector": "source.c", "shell": true, "encoding": "latin1" } 

诀窍是使用“开始”命令执行生成的文件,这会强制文件在新的cmd窗口中打开,并将所有内容放入第一个cmd定义(使用&&为了执行这两个命令),因为如果你定义了多个cmd数组,它们将被覆盖。

@FacundoJ:在Mac上,您可以使用终端在外部运行应用程序。 在C ++。sublime-build中,更改cmd,使其不是只运行编译的输出,而是在终端中启动它。

变更自:

 "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"] 

至:

 "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && open -a Terminal.app '${file_path}/${file_base_name}'"] 

在@FacundoJ接受的答案中,您每次运行程序时都要编译该程序。 这并不总是必要的(即当你只是修改一些外部资源或玩主要参数)。 在这种情况下,我推荐这个设置:

 { "cmd": ["g++", "$file", "-o", "$file_base_name.exe"], "working_dir": "${project_path:$folder}", "selector": "source.cpp", "shell": true, "variants": [{ "name": "Run", "cmd": ["start", "", "$file_base_name"] }] } 

(假设你的PATH中有C:\ MinGW \ bin),所以你可以使用它

  • Ctrl + B编译程序

  • Ctrl + Shift + B运行它(编译后,当然)

注1 start命令后注意空字符串: 应该使用 。

Note2你应该使用.cpp后缀,否则默认使用C89语法(至少在MinGW g ++编译器中)

对于Ubuntu

 { "cmd": ["g++ ${file} && xterm -hold -e ./a.out"], "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "selector": "source.c++", "shell": true, } 

这个构建系统所做的是编译.cpp文件并在xterm中打开输出文件。

– >如果你想输出在gnome-terminal中打开,创建一个配置文件

在gnome-terminal中,转到编辑 – >配置文件首选项 – >单击命令选项卡。 从标签为When命令退出的下拉菜单中选择“Hold the terminal open”。您应该为此创建一个新的配置文件

然后用“cmd”替换

  "cmd": ["g++ ${file} && gnome-terminal --window-with-profile=PROFILENAME -e ./a.out"] 

接受的答案允许您在Windows cmd中执行程序并接受输入。 但一旦程序执行结束,cmd窗口将立即关闭,然后才能清楚地看到输出 我认为你应该尝试下面的解决方案, 在执行程序后保持cmd窗口打开,以便你可以检查你的结果

 { "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}.exe\"", "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "selector": "source.c, source.c++", "variants": [ // run in the sublime text console { "name": "Run", "shell_cmd":"\"${file_path}/${file_base_name}\"" }, // run in the Windows cmd { "name": "Run in cmd", // the following two are all valid, choose one you prefer // "shell_cmd": "start cmd /k $file_base_name " // "shell_cmd": "start \"$file_base_name\" call $file_base_name" } ] } 

首先按Ctrl + B编译程序,然后按Ctrl + Shift + B并选择run in cmd选项中run in cmd

上述设置在Windows 8.1上进行了测试,并且还可以在Windows 7和Windows 10上运行。

这是工作!

 {"cmd": ["g++", "-Wall", "-ansi", "-pedantic-errors", "$file_name", "-o", "${file_base_name}.exe", "&&", "start", "cmd", "/k" , "$file_base_name"], "selector": "source.cpp", "working_dir": "${file_path}", "shell": true} 
  • Just goto工具>构建系统>新建系统…“C ++。sublime-build”…并且必须保存为所有文件
  • 选择该构建

只需输入(ctrl + b)查看提升的命令提示符打开,并提供像其他IDE的输入。