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

Sublime Text 默认不支持 Delphi 风格的 Pascal 语法高亮和编译,不是你写错了,而是它根本没加载对的语法定义、也没配好编译器路径——property 灰着、interface 不折叠、.dpr 打开是 Plain Text,这些全是默认行为,不是配置失误。
怎么确认当前 Pascal 语法是否真正生效
右下角显示 “Pascal” ≠ 正确高亮。必须手动验证:property、class、inherited 是否变色;unit MyUnit; 整行是否被识别为声明而非普通文本;interface 和 implementation 块能否折叠。
- 输入
property后仍是灰色 → 还在用原生tmLanguage旧包 -
.dpr文件打开后右下角显示Plain Text→ 扩展名未绑定 - 删除
Packages/Pascal/后仍无效 → 可能残留了Pascal.sublime-package或未重启
必须手动替换为 PascalImproved 语法包
Package Control 搜 “Delphi” 或 “Pascal” 安装的插件基本失效或崩溃,ST4 唯一稳定方案是社区维护的 PascalImproved:它用现代 .sublime-syntax 重写,支持 strict private、泛型、Unicode 字符串前缀(如 u'中文'),并默认识别 .pas、.dpr。
- 完全退出 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/8276475a7adfa639c3af4124e08449f5 下载 ZIP → 解压 → 重命名为
Pascal→ 拖入Packages目录 - 重启后打开
.pas文件,右键 →Set Syntax → Pascal,立即验证property颜色
让 .dpr 和 .dpk 文件自动使用 Pascal 语法
PascalImproved 默认只绑定 .pas 和 .dpr,但 Delphi 项目中常见的 .dpk(包文件)和 .inc(包含文件)仍被识别为纯文本,需显式注册。
- 菜单栏 →
Preferences → Settings – Syntax Specific - 在右侧用户配置中粘贴:
{ "extensions": ["pas","dpr","dpk","inc"] } - 保存后,所有
.dpk文件打开即自动应用 Pascal 语法,requires、contains等关键字将获得正确scope
怎么写一个靠谱的 Pascal.sublime-build 文件
这个 JSON 文件决定了 Sublime 怎么调用编译器、怎么解析错误、怎么运行结果。不能只抄网上旧模板,要匹配你本地的 fpc 版本和目标平台。
- 先确认终端里能直接运行
fpc -v;如果不行,说明系统PATH没配好,Sublime(尤其 macOS/Linux GUI 启动时)默认不读 shell 的PATH,得在sublime-build里显式写绝对路径,比如/usr/local/bin/fpc或C:\fpc\3.2.2\bin\i386-win32\fpc.exe - Windows 用户注意:不要用带空格的路径(如
Program Files),否则fpc参数解析会崩;建议装到C:\fpc\这类干净路径 -
"file_regex"必须匹配fpc实际输出格式,新版默认是^([^:]+):([0-9]+):([0-9]+),对应hello.pas(12,5) Error:;如果用的是老版fpc(输出类似Hello.pas(12,5)带括号),就得改成^([^:]+)\(([0-9]+),([0-9]+)\) - 想编译完自动运行,得加
"variants"分支,用"shell_cmd": "./$file_base_name"(macOS/Linux)或"shell_cmd": "$file_base_name.exe"(Windows),并确保"working_dir": "$file_path" - 编译成功却看不到运行结果窗口?这是最常被卡住的一点:Sublime 的 build system 默认只捕获标准输出,但 Pascal 控制台程序退出太快,窗口一闪就没了——得在代码末尾加
readln;,或改用start cmd /k "$file_base_name.exe"(Windows)保持窗口
语法高亮和构建系统是两套独立机制,缺一不可;selector 字段不匹配、file_regex 对不上错误格式、扩展名没注册全,任何一个环节出错都会导致“看着像在跑,实际没反应”。











