Sublime Text 默认不支持现代 Delphi 语法高亮,因原生 Pascal 语法仅兼容 Turbo Pascal,无法识别 interface/implementation、property、泛型等;须手动替换为 PascalImproved 并配置 .dpr/.dpk 扩展名绑定。

Sublime Text 默认不支持 Delphi 语法高亮,也不是装个插件就能解决——根本原因是原生 Pascal 语法定义只认 Turbo Pascal 风格,对 interface/implementation、strict private、property、泛型等现代 Delphi 特性完全无感知。你看到的“关键字灰扑扑”,不是配色问题,是语法解析器压根没识别出来。
为什么右下角显示 Pascal 却没高亮?
这是最典型的误判信号。Sublime 显示 Pascal 仅表示它用了内置的 Pascal 语法包,而该包在 Sublime 4 中仍是基于老旧 tmLanguage 或极简 .sublime-syntax 实现,连 constructor 后面的括号都会被当作文本吞掉。
- 打开
.pas文件后右下角显示Pascal≠ 正确高亮,需手动验证:输入property或class,看是否变蓝/紫(即被识别为 keyword) - 如果
unit MyUnit;头部整行都是灰色,基本可断定还在用原生语法 - 不要尝试通过 Package Control 搜 “Delphi” 安装——搜到的多是 Sublime 2 时代的
tmLanguage包,在 ST4 下会静默失效或导致崩溃
必须手动替换为 PascalImproved 语法
目前唯一稳定适配 Sublime Text 4 的方案是社区维护的 PascalImproved:它重写了全部 scope 规则,支持 Delphi 2009+ 的 Unicode 字符串、匿名方法、泛型声明等,并正确处理 .dpr、.dpk、.inc 等扩展名。
- 关闭 Sublime Text
- 定位 Packages 目录:
~/Library/Application Support/Sublime Text/Packages/(macOS)、%APPDATA%Sublime TextPackages(Windows)、~/.config/sublime-text/Packages/(Linux) - 删除原生
Pascal/文件夹(路径必须是Packages/Pascal/,不是Pascal.sublime-package) - 从 https://www.php.cn/link/d18a6195ef9a4d256b2cfad6aa68e3f7 下载 ZIP,解压后将整个文件夹重命名为
Pascal,放入 Packages 目录 - 重启 Sublime,打开任意
.pas文件 → 右键 →Set Syntax → Pascal,此时begin..end块、property、inherited应有明显颜色区分
让 .dpr 和 .dpk 文件也自动高亮
默认情况下,PascalImproved 只绑定 .pas,.dpr(项目文件)和 .dpk(包文件)仍会被识别为纯文本。必须显式注册扩展名:
- 菜单栏 →
Preferences → Settings – Syntax Specific - 在右侧用户配置中加入:
{ "extensions": ["pas", "dpr", "dpk", "inc"] } - 保存后,所有
.dpr文件打开即自动应用 Pascal 语法,program Project1;和uses块将获得完整高亮 - 注意:不要写成
"extensions": [".dpr"],Sublime 要求不含点号的纯扩展名
编译运行前先确认 fpc 可用且路径干净
语法高亮只是第一步,真正卡住人的往往是 build system 报 Unable to find command fpc 或编译后双击跳转失败。这不是 Sublime 的错,而是环境链断裂。
- 终端执行
fpc -v必须返回版本号;若失败,说明 PATH 未生效——GUI 启动的 Sublime 不继承 shell 的 PATH,需在.sublime-build中写绝对路径,如/usr/local/bin/fpc或C:\fpc\3.2.2\bin\i386-win32\fpc.exe - Windows 用户严禁把 fpc 装在含空格路径(如
Program Files),否则fpc解析参数时会截断 - build system 的
file_regex必须匹配 fpc 实际输出格式,推荐使用:"file_regex": "^(.+?)\((\d+)\)(?:\s+Inherited|\s+(Error|Warning|Note|Fatal))"
(注意 Windows 下反斜杠要双写) - 中文报错乱码?加编译参数
-Cg强制使用系统编码,例如:"cmd": ["fpc", "-Cg", "$file"]
Delphi 语法高亮真正的复杂点不在安装步骤,而在 scope 定义与主题的耦合:即使 PascalImproved 正确识别了 strict private,如果当前 color scheme 没定义 storage.modifier.delphi 这个 scope,它依然显示为默认色。别急着换主题,先用 Ctrl+Shift+P → Developer: Show Scope Name 看光标处实际 scope 是什么,再对应去改 .sublime-color-scheme 文件里的 rules。

















