sublime text默认不支持cobol语法高亮,需手动安装havok2063/cobol包、绑定.cbl/.cob扩展名至cobol语法、配置含正确file_regex的构建系统;其高亮仅兼容ansi-85大写关键字,不支持小写关键字、嵌入sql及新标准保留字。

Sublime Text 默认不支持 COBOL,连 IDENTIFICATION DIVISION 都不会高亮——这不是你配错了,是压根没这个语言包。想写 COBOL,必须手动补三样东西:语法包、扩展名绑定、构建系统。
怎么让 .cbl 文件显示 COBOL 高亮
Sublime 不会自动识别 .cbl、.cob 或 .cpy,右下角显示 “Plain Text” 是常态。
- 用 Package Control 安装
havok2063/COBOL包(兼容 ANSI-85,别选其他冷门分支) - 保存文件,扩展名必须是
.cbl或.cob(.txt或无后缀无效) - 点击右下角语法标签 → 选
COBOL;之后再点 View → Syntax → Open all with current extension as… → COBOL,才能永久绑定 - 高亮失效?先检查文件是否已保存到磁盘——未保存的临时缓冲区不触发语法匹配
为什么 cobc 编译失败但错误不跳转
构建系统里 file_regex 没对上 GnuCOBOL 实际报错格式,就只能看到红字,点不了错误行。
- GnuCOBOL 报错固定形如:
hello.cbl:12:7: error: syntax error, unexpected END OF LINE -
file_regex必须严格匹配:"^([a-zA-Z0-9._/-]+):([0-9]+):([0-9]+):? (.*)$"—— 少一个括号或字母顺序错,跳转就失效 - Windows 用户注意路径分隔符:
file_regex中的/在 Windows 下仍有效(GnuCOBOL 输出统一用/),不用改成\ - 如果用了固定格式(非 FREE),记得删掉构建命令里的
-free,否则编译器直接报错退出,根本不会输出行号
构建系统怎么写才真正可用
直接套 C++ 的 .sublime-build 会静默失败,因为 cobc 输出结构和 GCC 不同,且默认不生成可执行文件名。
- 基础编译(生成同名可执行):
"shell_cmd":"cobc -x -free "${file}"" - 加
-free才支持自由格式;若写固定格式(列 8 起源),必须去掉它 -
"selector":"source.cobol"是关键,它让 Ctrl+B 只在 COBOL 文件生效,避免误触其他语言构建 - 运行变体里用
cd "${file_path}" && "${file_base_name}",不能写成"${file_path}/${file_base_name}"—— Windows 下反斜杠路径会导致执行失败 - 构建前务必终端运行
cobc --version确认已安装且在 PATH 中,否则 Sublime 里只显示 “[Finished in 0.1s with exit code 1]” 这种无意义提示
哪些 COBOL 特性它根本不管
别指望这个组合支持现代 COBOL 开发,它只是让你把老代码敲出来、编译过、跑通——仅此而已。
- 所有小写关键字(如
identification division)全当普通文本,高亮只认大写 -
EXEC SQL块完全不识别,嵌入式 SQL 代码整段灰掉 - FREE 格式支持有限:能编译,但缩进/换行相关的语法高亮可能错位
- COBOL 2023 新增保留字(如
JSON、XML)不在词法表里,也不会着色 - 配色方案要改?去
Packages/User/COBOL.tmTheme(若不存在,先从默认包里复制一份再改)——但改完得重启 Sublime 才生效
最常被忽略的一点:GnuCOBOL 编译器本身不校验 DIVISION 顺序,PROCEDURE DIVISION 写在 DATA DIVISION 前面也能过,但运行时崩溃。Sublime 不会提醒你这个,得靠人眼盯住结构。











