必须手动替换为pascalimproved语法包并配置扩展名与构建系统:原生pascal仅支持turbo pascal,无法识别property、interface等delphi 2009+特性;需删除原pascal文件夹,下载pascalimproved重命名为pascal放入packages目录,再在syntax specific中添加["pas","dpr","dpk","inc"]扩展名绑定,并配置fpc绝对路径及-fu单元搜索路径。

Sublime Text 默认不支持 Pascal 编译运行,不是插件没装对,而是语法高亮、文件识别、构建系统三者全没对上——property 灰着、.dpr 打开是纯文本、Ctrl+B 报错 command not found,这三件事同时发生,基本可断定还在用原生 Pascal 包。
为什么 property 和 interface 仍是灰色?
原生 Pascal 语法包只认 Turbo Pascal 风格(program+begin/end),对 Delphi 2009+ 的 property、strict private、class helper、inherited 完全无解析规则。它甚至不把 .dpr 当作 Pascal 文件——右下角显示 “Pascal” 只是 Sublime 加载了错误的语法定义。
- 输入
property Foo: Integer read GetFoo;后未变蓝/紫,说明语法包未生效 - 右键 →
Set Syntax → Pascal后仍无代码折叠、无 scope 区分,确认是原生包在运行 - 别在 Package Control 搜 “Delphi”:排前几位的
.tmLanguage包是 ST2 遗留物,在 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 TextPackages
Linux:~/.config/sublime-text/Packages/ - 删除整个
Pascal/文件夹(注意:不是Pascal.sublime-package) - 从 https://www.php.cn/link/8276475a7adfa639c3af4124e08449f5 下载 ZIP → 解压 → 重命名为
Pascal→ 拖入Packages目录 - 重启后打开
.pas文件,右键 →Set Syntax → Pascal,立即验证property是否变色、interface/implementation块能否折叠
让 .dpr、.dpk、.inc 自动使用 Pascal 语法
PascalImproved 默认只绑定 .pas 和 .dpr,但 VCL/Delphi 项目中 .dpk(包文件)和 .inc(包含文件)高频出现,它们仍被识别为 Plain Text,需显式注册扩展名。
- 菜单栏 →
Preferences → Settings – Syntax Specific - 在右侧用户配置中粘贴:
{ "extensions": ["pas","dpr","dpk","inc"] } - 保存后,所有
.dpk文件打开即自动应用 Pascal 语法,requires、contains等关键字将获得正确 scope - 注意:该配置必须放在
Settings – Syntax Specific中(即当前语法专用设置),不能写进全局Preferences.sublime-settings
fpc 编译失败:找不到命令或报 unit not found
构建系统未指向正确的编译器路径,或未指定单元搜索路径。VCL 项目依赖大量 RTL/VCL 单元,fpc 默认不自动识别 $(FPCDIR)/units 下的 x86_64-win64 或 i386-win32 目录。
- 确保已安装 Free Pascal Compiler(
fpc),并在终端执行fpc -v能返回版本号 - Windows 用户避免把
fpc装在带空格路径(如Program Files),建议装到C:pc这类干净路径 - 创建
Pascal.sublime-build文件,"shell_cmd"必须写绝对路径,例如:"shell_cmd": "C:\fpc\3.2.2\bin\i386-win32\fpc.exe -Mdelphi -O2 -o"$file_base_name" "$file"" - 若报
unit not found,在shell_cmd中添加-Fu参数,例如:-Fu"C:\fpc\3.2.2\units\i386-win32\rtl;C:\fpc\3.2.2\units\i386-win32\vcl" - 错误正则表达式
"file_regex"必须匹配实际输出格式;新版 fpc 默认是^([^:]+):([0-9]+):([0-9]+),对应hello.pas(12,5) Error:
最常被忽略的是:Sublime 的 GUI 启动方式默认不继承 shell 的 PATH,所以即使终端里 fpc -v 成功,Sublime 里仍可能报 Unable to find command fpc——这时必须在 .sublime-build 里硬编码绝对路径,不能依赖环境变量。











