编译程序并在终端中运行

我使用Ubuntu 12.04,我想知道,是否可以从终端自动运行c ++程序? 当你不得不在控制台中使用build时,它确实很糟糕,因为有时我偶然会发生无限循环,并且必须重新启动崇高的文本才能再次运行。 我正在使用崇高的文字3。


Sublime Text 3包含两个您可能感兴趣的构建系统:C ++和Make。 C++.sublime-build文件如下所示:

{
    "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",
            "shell_cmd": "g++ "${file}" -o "${file_path}/${file_base_name}" && "${file_path}/${file_base_name}""
        }
    ]
}

要使用它,请转至Tools -> Build System并选择C++ 。 现在可以使用CtrlB来运行构建(顶部命令),或者使用CtrlShiftB来运行Run变量。


{
  "cmd": ["g++", "$file", "-o", "${file_path}/${file_base_name}"],
  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
  "working_dir": "${file_path}",
  "selector": "source.c, source.c++, source.cxx, source.cpp",
  "variants":
  [
      {
          "name": "Run",
          "shell": true,
          "cmd": ["gnome-terminal -e 'bash -c "${file_path}/${file_base_name};echo;echo;  echo Press ENTER to continue; read line;exit; exec bash"'"]
      }
  ]    
}

它可以运行在终端并从键盘输入数据


我认为最好的答案并不能实现OP想要实现的目标。 OP想知道如何在终端中执行当前文件。

@ Flycode的设置对我无效。 我使用的是带有Sublime Text 3的CentOS 7.由于人们可能会使用不同的终端仿真器,所以我列出了不同终端的一些不同选项。

注意

以上设置在上述环境中进行了测试并且运行良好。 我不能保证他们会在其他环境中工作。

选项1:GNOME终端

您可以使用以下设置,

{
    "shell_cmd": "g++ -std=c++11 -Wall "${file}" -o "${file_path}/${file_base_name}"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "shell": true,
    "working_dir": "${file_path}",
    "selector": "source.c++, source.cxx, source.cpp, source.cc",

    "variants":
    [
        {
            "name": "Run",
          "shell_cmd": "gnome-terminal -e 'bash -c "${file_path}/${file_base_name};exec bash "'",
        }
    ]
}

gnome-terminal会自动关闭执行窗口,上面的命令

   "shell_cmd": "gnome-terminal -e 'bash -c "${file_path}/${file_base_name};exec bash "'" 

以这种方式来确保我们可以看到执行结果。 关于如何防止gnome-terminal自动关闭的详细讨论,请参阅此SO帖子。

选项2:XTerm

您可以使用以下设置(为简洁起见,我省略了一些设置)

{    // same stuff as option 1
    "variants":
    [
        {
           "name": "Run",
            //use this if you want to input other command after programm execution
           "shell_cmd": "xterm -e '${file_path}/${file_base_name}; bash'",
           //or you can use the below setting if you just want to execute this program
           // "shell_cmd": "xterm -hold -e ${file_path}/${file_base_name}",

        }
    ]
}

看到这个SO帖子关于防止xterm窗口自动关闭。

选项3:Konsole

您可以使用以下设置,

{    // same stuff as option 1
        "variants":
        [
            {
                "name": "Run",
                "shell_cmd": "konsole --hold -e ${file_path}/./${file_base_name}",        
            }
        ]
}

看到这里和这里的讨论,以便在完成程序后持有konsole窗口。

链接地址: http://www.djcxy.com/p/64107.html

上一篇: compile program and run in terminal

下一篇: JUnit android test classinheritance