必须手动替换为PascalImproved语法包并配置构建系统:删除原生Pascal文件夹,下载PascalImproved重命名为Pascal放入Packages目录,添加.dpr/.dpk/.inc扩展名支持,再配置含fpc绝对路径和正确file_regex的Pascal.sublime-build文件。

Sublime Text 默认的 Pascal 语法和构建系统完全不适用于 Delphi 风格或现代教学用 Pascal 代码——不是你写错了,是它根本没加载对的语法定义,也没配对编译器路径。
为什么 property、interface、implementation 全是灰色?
原生 Pascal 语法包只识别 Turbo Pascal 时代的 program/begin/end 结构,对 property、strict private、class helper、Unicode 字符串前缀(如 u'中文')等零支持。右下角显示 “Pascal” 只代表它加载了内置包,不代表高亮生效。
- 打开
.pas文件后,unit MyUnit;整行灰?基本可断定还在用原生语法 - 输入
constructor或inherited不变色?说明 scope 规则没覆盖到这些 keyword - 别在 Package Control 里搜 “Delphi”——排前几的插件全是 Sublime Text 2 的
.tmLanguage遗留物,在 ST4 上静默失效或崩溃
必须手动替换为 PascalImproved 语法包
目前唯一稳定适配 Sublime Text 4 的方案是 PascalImproved:它用现代 .sublime-syntax 重写,正确识别 interface/implementation 块折叠、type 块内类声明、泛型、匿名方法,并支持 .pas、.dpr、.dpk、.inc 四种扩展名。
- 完全退出 Sublime Text
- 定位
Packages目录:
macOS:~/Library/Application Support/Sublime Text/Packages/
Windows:%APPDATA%Sublime TextPackages
Linux:~/.config/sublime-text/Packages/ - 删除目录下名为
Pascal/的文件夹(注意不是Pascal.sublime-package) - 访问 GitHub 仓库 → Code → Download ZIP → 解压 → 将解压出的文件夹重命名为
Pascal→ 拖入Packages目录 - 重启 Sublime,打开任意
.pas文件 → 右键 → Set Syntax →Pascal→ 输入property Foo: Integer read GetFoo write SetFoo;看是否变蓝
让 .dpr 和 .dpk 文件也自动高亮
PascalImproved 默认只绑定 .pas 和 .dpr,但 Delphi 项目中常见的 .dpk(包文件)和 .inc(包含文件)仍被识别为 Plain Text。必须显式注册扩展名。
- 菜单栏 → Preferences → Settings – Syntax Specific
- 在右侧用户配置中加入:
{
"extensions": ["pas", "dpr", "dpk", "inc"]
}
- 保存后,所有
.dpk文件打开即自动使用Pascal语法;.inc中的常量、类型声明也会有基础高亮 - 若仍不生效,检查文件编码是否为
UTF-8 with BOM(Delphi 项目常见),否则部分 Unicode 标识符可能解析失败
编译运行失败?90% 是 build system 配置错
Sublime 不自带编译器,必须靠 fpc 和自定义 Pascal.sublime-build 协同。关键不是抄模板,而是匹配你本地路径、fpc 版本和平台行为。
- 先在终端执行
fpc -v,确认能返回版本号;若失败,说明 PATH 没配好,Sublime GUI 启动时默认不读 shell 的 PATH -
"shell_cmd"必须写绝对路径,例如:/usr/local/bin/fpc(macOS/Linux)或C:\fpc\3.2.2\bin\i386-win32\fpc.exe(Windows) - Windows 路径含空格(如
Program Files)会导致参数解析崩溃,务必装到干净路径如C:\fpc\ - 错误正则
"file_regex"必须匹配 fpc 实际输出:新版默认是^([^:]+):([0-9]+):([0-9]+)(对应hello.pas(12,5) Error:);老版括号格式需改成^([^:]+)\(([0-9]+),([0-9]+)\) - 想编译完自动运行,加
"variants"分支:
macOS/Linux:"shell_cmd": "./$file_base_name"
Windows:"shell_cmd": "$file_base_name.exe",并设"working_dir": "$file_path" - 程序窗口一闪就消失?不是 Sublime 问题,是控制台程序退出太快;临时解决可在代码末尾加
readln;,或构建命令里用cmd /c "$file_base_name.exe & pause"
最容易被忽略的是:PascalImproved 语法生效后,.dpr 文件虽能高亮,但 fpc 编译时默认不认它为工程入口——得用 -Mdelphi 模式,且确保 project.dpr 里有 begin ... end. 结构,否则报 “No program or library found”。

















