必须手动替换为PascalImproved语法包并配置扩展名与构建系统:原生Pascal仅支持Turbo Pascal,无法识别property、interface等Delphi 2009+特性;需删除原Pascal文件夹,下载PascalImproved重命名为Pascal放入Packages目录,再在Syntax Specific中添加["pas","dpr","dpk","inc"]扩展名绑定。

Sublime Text 默认不支持 Delphi 风格的 Pascal 语法高亮和编译,不是你写错了,而是它根本没加载对的语法定义、也没配好编译器路径。
为什么右下角显示“Pascal”但 property/class/interface 全是灰色?
原生 Pascal 语法包只识别 Turbo Pascal 时代的语法(program、begin/end),对 Delphi 2009+ 的关键字如 property、strict private、class helper、inherited 完全无感知。它甚至不把 .dpr 当作 Pascal 文件——打开就是纯文本。
- 输入
property后没变蓝/紫,基本可判定还在用原生语法 - 右键 →
Set Syntax → Pascal后仍无折叠、无配色,说明语法包未生效 - 别在 Package Control 里搜 “Delphi”——排前几位的
.tmLanguage包是 Sublime Text 2 遗留物,在 ST4 上静默失效或崩溃
必须手动替换为 PascalImproved 语法包
目前唯一稳定适配 Sublime Text 4 的方案是社区维护的 PascalImproved:它用现代 .sublime-syntax 重写,支持 Unicode 字符串、泛型、匿名方法,并正确识别 .pas、.dpr、.dpk、.inc 四种扩展名。
- 完全退出 Sublime Text
- 定位
Packages目录:
macOS:~/Library/Application Support/Sublime Text/Packages/
Windows:%APPDATA%\Sublime Text\Packages\
Linux:~/.config/sublime-text/Packages/ - 删除目录下名为
Pascal/的文件夹(注意:不是Pascal.sublime-package) - 访问 https://www.php.cn/link/d18a6195ef9a4d256b2cfad6aa68e3f7 →
Code → Download ZIP→ 解压 → 将解压出的文件夹重命名为Pascal→ 拖入Packages目录 - 重启 Sublime,打开任意
.pas文件,右键 →Set Syntax → Pascal,测试property Foo: Integer read GetFoo;是否变蓝
让 .dpr、.dpk、.inc 文件也自动高亮
PascalImproved 默认只绑定 .pas 和 .dpr,但 Delphi 项目中常见的 .dpk(包文件)和 .inc(包含文件)仍被识别为 Plain Text,需显式注册扩展名。
- 菜单栏 →
Preferences → Settings – Syntax Specific - 在右侧用户配置中加入:
{
"extensions": ["pas", "dpr", "dpk", "inc"]
}
- 保存后,所有
.dpr、.dpk、.inc文件打开即自动使用Pascal语法 - 务必确认文件编码为
UTF-8 with BOM(尤其含中文字符串时),否则高亮可能断点或错位
编译运行仍失败?检查 build system 和 fpc 路径
语法高亮只是第一步。若按 Ctrl+B 编译报 Unable to find command fpc 或错误不跳转,说明构建系统没配对。
- 先在终端执行
fpc -v,确认能返回版本号;若不行,说明系统 PATH 没配好 - Sublime(尤其 macOS/Linux GUI 启动)默认不读 shell 的 PATH,必须在
Pascal.sublime-build中写绝对路径,例如:/usr/local/bin/fpc或C:\fpc\3.2.2\bin\i386-win32\fpc.exe - Windows 用户避免路径含空格(如
Program Files),建议装到C:\fpc\ - 关键字段示例:
{
"shell_cmd": "fpc -Mdelphi -O2 -o\"$file_base_name\" \"$file\"",
"file_regex": "^([^:]+):([0-9]+):([0-9]+)",
"working_dir": "$file_path",
"variants": [
{
"name": "Run",
"shell_cmd": "$file_base_name.exe"
}
]
}
-
file_regex必须匹配你本地fpc实际输出格式;新版默认是hello.pas(12,5) Error:,旧版可能是Hello.pas(12,5),正则要同步改 - 编译成功却看不到运行结果?这是控制台窗口闪退——加
readln;到代码末尾,或在Run变体里用cmd /c "$file_base_name.exe & pause"(Windows)
最常被忽略的是:语法高亮和编译运行是两套独立机制,一个配好了不代表另一个自动好;且 PascalImproved 不会自动注册扩展名,.dpk 和 .inc 必须手动加进 Settings – Syntax Specific 才生效。











