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

Sublime Text 原生不支持 COBOL,连 IDENTIFICATION DIVISION 都不会高亮——这不是你漏配了哪项,是压根没加载语法定义。必须手动补全三件事:装包、绑扩展名、配构建系统,缺一不可。
如何让 .cbl 文件真正触发 COBOL 高亮
安装 havok2063/COBOL 包后,.cbl 文件仍显示为 Plain Text,本质是 Sublime 没把扩展名映射到 source.cobol 语法作用域。
- 先保存文件,扩展名必须是
.cbl或.cob(.txt或无后缀无效) - 点击右下角语法名 → 选
Cobol,这是临时切换 - 再执行
View → Syntax → Open all with current extension as… → Cobol,这步会写入Packages/User/Cobol.sublime-settings - 若该文件已存在且 JSON 格式错误(比如多逗号、缺引号),高亮会静默失效,建议删掉重来
为什么高亮开了却看不到关键字(如 MOVE、PERFORM)
该插件基于 ANSI-85 标准,只匹配大写关键字,且不识别小写形式或自由格式(-free)下的语法结构。
-
move、perform这类小写关键字不会高亮,必须写成MOVE、PERFORM - 嵌入 SQL(如
EXEC SQL)、COBOL 2002+ 新保留字(如XML)均不在词法覆盖范围内 - 高亮不校验列位置(固定格式要求第 8–72 列),但也不会因列错位而失效——它只管正则匹配
cobc 编译报错不跳转?file_regex 没对上就白搭
GnuCOBOL 报错格式是硬约束:hello.cbl:12:7: error: syntax error...。构建系统里 file_regex 必须严格捕获「文件名、行号、列号」三组,否则 Ctrl+Click 完全无效。
-
"file_regex": "^([a-zA-Z0-9._/-]+):([0-9]+):([0-9]+):? (.*)$"—— 少一个括号或改顺序(比如把行号放第三组)都会断掉跳转 -
"shell_cmd": "cobc -x -free \"${file}\""中的-free要和源码格式一致;固定格式项目必须删掉,否则编译器直接退出,根本不输出错误行 -
"working_dir": "${file_path}"不可省:COPY 语句依赖相对路径,不设会导致copybook not found
highlight_line 开了但当前行没反应?别只盯着设置项
"highlight_line": true 只是开关,实际颜色由当前配色方案中的 region.line 规则决定。很多主题(尤其是老版或自定义主题)压根没定义这个 scope。
- 先换用系统默认主题(如
Monokai或Brogrammer)验证是否生效 - 若换主题后正常,说明原主题缺失
region.line;可编辑其.sublime-color-scheme文件,在"rules"末尾加:{"name": "Current Line", "scope": "region.line", "background": "hsla(210, 10%, 85%, 0.2)"} - 注意:高亮只作用于光标所在行,不是选中行;分屏插件、终端面板等非编辑视图天然不支持
最容易被忽略的是:所有配置都依赖文件已保存到磁盘。未保存的缓冲区不会触发语法匹配,也不会读取 Cobol.sublime-settings 的扩展名绑定——这点在调试时尤其容易卡住几小时。











