Package Control 是 Sublime Text 插件安装器,必须先安装才能使用插件;安装后需重启,再通过 Ctrl+Shift+P 安装 SublimeLinter-gcc、Terminus 和 C Improved 三个 C 语言刚需插件,并配置支持交互的 C11.sublime-build 构建系统。

Package Control 必须先装,否则所有插件都无效
没装 Package Control 就去搜插件,结果只会是“命令未找到”或面板空白。它不是插件,而是插件的“安装器”,相当于 Sublime 的应用商店后台服务。
打开 Sublime Text,按 Ctrl+`(反引号)调出控制台,粘贴这段代码(适配 ST3/ST4):
import urllib.request,os,hashlib; h = '6f4c264a24d23ca7df454c82994c8f2d' + 'e'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler())); by = urllib.request.urlopen('http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download: %s' % dh if dh != h else 'Success! Please restart Sublime Text to finish installation.'); open(os.path.join(ipp, pf), 'wb').write(by)
执行后重启编辑器,菜单栏出现 Package Control 项才算成功。如果控制台报 urllib.error.URLError,说明网络不通——换用国内镜像源手动安装更稳(见后文)。
装完 Package Control 后,只装这 3 个 C 语言刚需插件
大学生写 C 作业,核心诉求就三个:语法别标错、代码能一键编译运行、输入输出别卡死。以下插件直击痛点,不堆华而不实的功能:
立即学习“C语言免费学习笔记(深入)”;
-
SublimeLinter-gcc:实时检查gcc编译错误(比如漏分号、类型不匹配),错误直接标在行尾,不用等 Ctrl+B 才发现写崩了 -
Terminus:在 Sublime 内嵌终端里跑./a.out,支持键盘输入,比弹 cmd 窗口干净得多 -
C Improved:比默认 C 语法包更准,能识别scanf("%d", &a)中的地址符,高亮更稳,#include <stdio.h>不会误标为字符串
安装方式统一:按 Ctrl+Shift+P → 输入 Install Package → 回车 → 等列表加载完 → 输入插件名(如 C Improved)→ 回车。每个插件装完无需重启,但 Terminus 需要手动启用:右键编辑区 → Terminus: Open Default Shell 测试是否生效。
手动安装失败时,用这个路径把插件塞进去
如果 Install Package 搜索不到或下载超时(尤其在校内网络),直接走文件落地:
- 去 GitHub 搜插件名,例如
github.com/randy3k/Terminus,进Releases下最新.sublime-package文件 - 按
Preferences → Browse Packages…,打开所在文件夹(Windows 通常是%APPDATA%\Sublime Text\Packages) - 把下载好的
.sublime-package文件拖进该目录,**不要解压**,Sublime 会自动识别 - 重启编辑器,插件即生效;若仍不显示,检查文件名是否含空格或中文(必须全英文+下划线)
编译系统别用默认的,否则 scanf 会卡住
Sublime 自带的 C.sublime-build 是纯编译,不带运行环境,scanf 等需要交互的函数一跑就假死。必须自定义一个支持终端交互的构建系统:
按 Tools → Build System → New Build System…,粘贴以下内容:
{
"shell_cmd": "gcc -std=c11 -Wall \"$file\" -o \"$file_base_name\" && \"${file_path}/${file_base_name}\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "$file_path",
"selector": "source.c",
"variants": [
{
"name": "Run in Terminus",
"target": "terminus_exec",
"cmd": ["gcc", "-std=c11", "-Wall", "${file}", "-o", "${file_base_name}"],
"post": ["${file_path}/${file_base_name}"]
}
]
}
保存为 C11.sublime-build,然后在 Tools → Build System 中选它。之后按 Ctrl+B 编译,Ctrl+Shift+B 运行(自动唤起 Terminus 终端)。注意:scanf 输入后要敲回车,程序才会继续——这是终端行为,不是 bug。
真正容易被忽略的是:所有构建系统里的路径变量(如 $file_path)不能加引号包裹,否则 Windows 下空格路径会解析失败;而 shell_cmd 整体必须用双引号,这是 JSON 语法硬性要求。

















