Sublime Text运行C和C++程序

Sublime Text 是一款当下非常流行的文本编辑器,其功能强大(提供有众多的插件)、界面简洁、还支持跨平台使用(包括 Mac OS X、 Linux 和 Windows)。

在程序员眼中,Sublime Text 不仅仅是一个文本编辑器,它还可以作为代码编辑器。只要对 Sublime Text 进行简单的设置,它就可以自行调用 GCC 编译器编译写好的代码。

考虑到 Sublime Text 跨平台的特性,本节将分别为读者讲解,如何设置 Windows、Linux(以 Ubuntu 为例)以及 Mac OS X 系统中的 Sublime text 编辑器,使其具备执行 CC++ 程序的能力。

Windows配置Sublime Text

如下图所示,是笔者本机已经安装好的 Sublime Text。如果读者尚未安装,先前往 Sublime Text 官网下载并安装(安装过程非常简单,这里不做过多赘述)。

04_Sublime Text运行C和C程序.png

要知道,刚刚安装的 Sublime Text 无法自行具备运行 C、C++ 代码的能力,需要我们手动对其进行设置。不过在开始设置之前,读者需保证当前系统中已经初始化好了 GCC 编译环境。打开命令行窗口,并执行 gcc -v 指令,如果输出 GCC 编译器的具体版本等信息,表明当前系统以成功配置了 GCC 编译环境(如下图所示)。

05_Sublime Text运行C和C程序.png

在已安装好 GCC 编译器的基础上,接下来开始正式配置 Sublime Text 编辑器。

配置Sublime Text

  1. 要想使 Sublime Text 具备运行 C 语言程序的能力,需在菜单栏中依次点击 “Tools -> Build System -> New Build System”,由此即可在 Sublime Text 打开一个临时文件,如下所示:

06_Sublime Text运行C和C程序.png

删除其所有内容,并将如下内容完整地复制到该文件中:

{ "cmd": ["gcc","${file}","-o", "${file_path}/${file_base_name}"], "file_regex":"^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir":"${file_path}", "selector": "source.c", "encoding":"cp936", "variants": [ { "name": "C_Run", "cmd": ["cmd","/c", "gcc", "${file}", "-o", "${file_path}/${file_base_name}","&&", "cmd", "/c","${file_path}/${file_base_name}"] }, { "name":"C_RunInCommand", "cmd": ["cmd","/c", "gcc", "${file}","-o","${file_path}/${file_base_name}", "&&","start", "cmd", "/c","${file_path}/${file_base_name} & pause"] } ] }

此文件中的内容,实则是运行 C 语言程序时需要执行的 gcc 指令,只不过在 Sublime Text 文件中,需写成以上形式。

按 Ctrl+S 组合键,将此文件保存起来,其中文件名默认为 untitled.sublime-build(untitile 可以自定义,例如 gcc_sublime-build),保存路径即为按 Ctrl+S 弹出的路径(切忌手动修改此路径)。

  1. 重新打开 Sublime Text,并依次在菜单栏中选择 “Tools -> Build System”, 在该选项中就可以看到上一步创建好的 gcc_sublime-build 的文件名 gcc,如下图所示:

07_Sublime Text运行C和C程序.png

通过勾选 gcc 编译选项(直接在上图中点击即可),我们就可以直接在 Sublime Text 运行写好的 C 语言程序。比如,在 Sublime Text 编写如下程序:

08_Sublime Text运行C和C程序.png

在此基础上,选择 “Tools -> Build With…” 选项,此时 Sublime Text 会弹出如下对话框:

09_Sublime Text运行C和C程序.png

  可以看到,这里有 gcc、gcc-C_Run 和 gcc-RunInCommand 3 个选项,其中 gcc 用于编译程序(读者可自	行查看执行结果),gcc-C_Run 用于在 Sublime Text 内部调用 GCC 编译器并显示程序的执行结果(如下图) 所示:

10_Sublime Text运行C和C程序.png

gcc_RunInCommand 用于在命令行窗口中借助 gcc 指令运行该程序并输出执行结果,如下图:

11_Sublime Text运行C和C程序.png

  同样,如果想使 Sublime Text 具备执行 C++ 程序的能力,则只需再建立一个 g++_sublime-build 配置文件,并将如下内容拷贝到该文件中:
{ "cmd": ["g++","-Wall", "${file}", "-o", "${file_path}/${file_base_name}"], "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "selector": "source.c, source.c++", "encoding":"cp936", "variants": [ { "name": "C++_Run", "cmd": ["cmd", "/c", "g++", "-Wall","${file}", "-o", "${file_path}/${file_base_name}", "&&", "cmd", "/c", "${file_path}/${file_base_name}"] }, { "name": "C++_RunInCommand", "cmd": ["cmd", "/c", "g++", "-Wall","${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/c", "${file_path}/${file_base_name} & echo.&pause"] } ] }

其它操作步骤,和上面是完全一样的。由此,即可使 Sublime_Text 具备执行 C++ 程序的能力。

Mac OS X配置Sublime Text

Mac OS X 系统中,使 Sublime Text 具备执行 C、C++ 能力的配置过程,和 Windows 系统中的配置步骤大致相同,有以下 2 点不同:

  • 默认情况下,该操作系统中已默认安装有 GCC 编译器,所以如果读者对编译器版本没有刻意的要求,则可以省略安装 GCC 的过程;
  • 在 Mac OS X 系统中,需要修改 gcc_sublime-build 文件中的内容。

若想使 Sublime Text 具备执行 C 语言程序的能力,在菜单栏中依次点击“Tools -> Build System -> New Build System”,创建一个 gcc.sublime-build 配置文件,其文件内容如下:

{ "cmd" : ["gcc -o ${file_base_name} $file_name"], "shell" : true, "working_dir" : "$file_path", "selector": "source.c", "variants" : [{ "name" : "c_Run", "cmd" : "./${file_base_name}" }, { "name": "c_RunInCommand", "shell_cmd": "open -a Terminal.app '${file_base_name}'" }] }

其中,c_Run 用于在 Sublime Text 底部显示程序的执行结果;而 c_RunInCommend 用于在命令行窗口中显示 C 语言程序的执行结果。仍以上图中的 C 语言程序为例,则 2 个编译选项的执行效果如下图所示:

12_Sublime Text运行C和C程序.png

可以看到,使用如上指令调取命令行窗口执行 C 语言程序,除执行结果外,还会显示其它无用的信息。因此建议读者使用 c-Run 编译选项执行 C 语言程序,简单方便。

同理,通过创建 g++.sublime-build 配置文件,并将如下内容拷贝到该文件中:

{ "cmd" : ["g++ -o ${file_base_name} $file_name"], "shell" : true, "working_dir" : "$file_path", "selector": "source.cpp", "variants" : [{ "name" : "c_Run", "cmd" : "./${file_base_name}" }, { "name": "c_RunInCommend", "shell_cmd": "open -a Terminal.app '${file_base_name}'" }] }

即可实现令 Sublime Text 具备执行 C++ 程序的能力。

Ubuntu配置Sublime Text

要知道,Ubuntu 系统默认是不安装 GCC 编译器的,因此在配置 Sublime Text 之前,读者要自行安装 GCC 编译器(执行 sudo apt install gcc 指令即可安装)。

安装 GCC 编译器之后,即可开始配置 Sublime Text。Sublime Text 的配置过程和在 Windows 环境中大致相同,唯一不同之处在于,要修改 xxx.sublime-build 配置文件(读者可自定义 xxx 的内容)中的内容。

如果要使 Sublime Text 具备执行 C 语言程序的能力,则可以依次选择“Tools -> Build System -> New Build System”并创建一个 gcc.sublime-build 配置文件,其中包含如下内容:

{ "encoding": "utf-8", "working_dir": "$file_path", "shell_cmd": "gcc \"$file_name\" -o \"$file_base_name\"", "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "selector": "source.c", "variants": [ { "name": "c_Run", "shell_cmd": "./${file_base_name}" }, { "name": "c_RunInCommand", "shell_cmd": "gnome-terminal -x bash -c \"'${file_path}/${file_base_name}';read -p '\nPress any key to continue...'\"" } ] }

如果想使 Sublime Text 具备执行 C++ 程序的能力,则可以创建一个 g++.sublime-build 配置文件,将如下内容拷贝到该文件中:

{ "encoding": "utf-8", "working_dir": "$file_path", "shell_cmd": "g++ \"$file_name\" -o \"$file_base_name\"", "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "selector": "source.cpp", "variants": [ { "name": "c++_Run", "shell_cmd": "./${file_base_name}" }, { "name": "c++_RunInCommand", "shell_cmd": "gnome-terminal -x bash -c \"'${file_path}/${file_base_name}';read -p '\nPress any key to continue...'\"" } ] }

由此,就完成了对 Sublime Text 的配置。仍以上图中的 C 语言程序为例,如下是使用 Sublime Text 执行它的效果图:

13_Sublime Text运行C和C程序.png