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

Pascal 语法高亮和编译功能在 Sublime Text 中默认不可用,不是配置漏了,而是原生包根本不支持 Delphi 风格语法——property 灰着、.dpr 打开是 Plain Text、Ctrl+B 报 command not found,这三件事同时出现,基本可断定你还在用内置旧包。
为什么右下角显示 “Pascal” 却没高亮?
Sublime 显示 “Pascal” 仅表示它加载了默认语法定义,而该定义基于 Turbo Pascal 时代规则,对 interface、implementation、strict private、inherited 等完全无 scope 规则。它甚至不把 .dpr 当作 Pascal 文件处理,unit MyUnit; 整行灰色就是最直接证据。
-
property输入后未变蓝/紫 → 语法包未生效 - 右键 →
Set Syntax → Pascal后仍无块折叠 → 还在用原生tmLanguage - Package Control 搜 “Delphi” 安装的插件多为 ST2 遗留物,在 ST4 上静默失效或崩溃
必须手动替换为 PascalImproved 语法包
这是目前唯一稳定适配 Sublime Text 4 的方案,用现代 .sublime-syntax 重写,支持 Unicode 字符串前缀(如 u'中文')、泛型、class helper,并正确识别 .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 仓库 下载 ZIP → 解压 → 重命名为
Pascal→ 拖入Packages目录 - 重启后打开
.pas文件,右键 →Set Syntax → Pascal,验证property和begin..end是否着色
让 .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
配置可用的 Pascal.sublime-build 构建系统
语法高亮只是第一步;真正卡住人的往往是构建失败。Sublime 不会自动找 fpc,也不懂怎么解析它的错误输出——你得手写一个能匹配你本地 fpc 版本行为的 .sublime-build。
- 先确认终端里能运行
fpc -v;若不行,说明 PATH 没配好,Sublime GUI 启动时通常不继承 shell PATH - Windows 用户避免路径含空格(如
Program Files),建议装到C:pc;macOS/Linux 用户用which fpc确认路径 - 创建
Tools → Build System → New Build System…,填入:{ "cmd": ["fpc", "-Mdelphi", "-O2", "-o$file_base_name", "$file"], "file_regex": "^([^:]+):([0-9]+):([0-9]+)", "selector": "source.pascal", "working_dir": "$file_path", "variants": [ { "name": "Run", "cmd": ["./$file_base_name"] } ] } - Windows 下
"Run"变体需改为:"cmd": ["cmd.exe", "/c", "$file_base_name.exe"] - 若报
unit not found,在"cmd"中加-Fu参数,例如:-FuC:\fpc\3.2.2\units\x86_64-win64
.dpr 文件能否自动识别、fpc 错误能否双击跳转、编译后窗口是否闪退,全取决于这几处配置是否严丝合缝。稍有偏差,就退回“灰扑扑+报错不跳转”的原始状态。











