必须手动替换为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 包。
怎么确认 Pascal 语法包是否真正生效
右下角显示 “Pascal” ≠ 正确高亮。必须手动验证:property、class、inherited 是否变色;unit MyUnit; 整行是否被识别为声明而非普通文本;interface 和 implementation 块能否折叠。
- 输入
property Foo: Integer read GetFoo;后仍是灰色 → 说明还在用原生 tmLanguage 旧包 - .dpr 文件打开后右下角显示 “Plain Text” → 扩展名未绑定,或 PascalImproved 没生效
- 删除
Packages/Pascal/后仍无效 → 可能残留了Pascal.sublime-package,或未完全退出 Sublime Text 再重启
必须手动替换为 PascalImproved 语法包
原生 Pascal 语法只支持 Turbo Pascal 风格(program+begin/end),对 property、strict private、class helper、inherited 完全无解析规则。Package Control 里搜 “Delphi” 排前几位的插件全是 ST2 遗留物,在 ST4 上静默失效或崩溃。
- 完全退出 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,立即验证关键字颜色
让 .dpr、.dpk、.inc 自动使用 Pascal 语法
PascalImproved 默认只绑定 .pas 和 .dpr,但 Delphi/VCL 项目中 .dpk(包文件)和 .inc(包含文件)高频出现,它们仍被识别为 Plain Text,需显式注册扩展名。
- 菜单栏 →
Preferences → Settings – Syntax Specific - 在右侧用户配置中粘贴:
{ "extensions": ["pas","dpr","dpk","inc"] } - 保存后,所有
.dpk文件打开即自动应用 Pascal 语法,requires、contains等关键字将获得正确 scope - ⚠️ 注意:该配置必须放在
Settings – Syntax Specific中(即当前语法专用设置),不能写进全局Preferences.sublime-settings
配置 Pascal.sublime-build 实现编译与运行
Sublime 不自带编译器,必须靠外部 fpc 和自定义 Pascal.sublime-build 协同工作。关键不是“装插件”,而是让 Sublime 知道去哪找 fpc、怎么传参、怎么捕获错误行号。
- 先确认终端里能直接运行
fpc -v;如果不行,说明系统 PATH 没配好 —— macOS/Linux GUI 启动时默认不读 shell 的 PATH,得在 build 文件里写绝对路径,如/usr/local/bin/fpc或C:pc.2.2ini386-win32pc.exe - Windows 用户避免带空格路径(如
Program Files),否则参数解析会崩;建议装到C:pc这类干净路径 - 构建命令示例(含 Delphi 兼容模式):
"shell_cmd": "fpc -Mdelphi -O2 -o"$file_base_name" "$file""
其中-Mdelphi支持begin..end.后多点语法,-O2开启优化 - 错误正则必须匹配 fpc 实际输出:
"file_regex": "^([^:]+):([0-9]+):([0-9]+)"(对应hello.pas(12,5) Error:);老版 fpc 输出带括号,则改用"^([^:]+)\(([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;,或构建命令里用start cmd /k $file_base_name.exe(Windows)
最常被忽略的是:构建系统里没写 fpc 绝对路径,又没配好系统 PATH,导致 Ctrl+B 直接报 “command not found”;还有人把 extensions 配置错放成全局设置,结果 .dpk 依然当纯文本处理。











