sublime 默认不识别 .iss 文件,因其语法是类 pascal 的自定义格式,自带pascal或ini语法无法正确匹配括号、字符串转义和注释;手动关联为pascal语法可快速改善结构识别,而inno setup syntax highlighting插件才能完整支持段落标记、宏及预处理变量高亮。

为什么 Sublime 默认不识别 .iss 文件?
因为 Inno Setup 脚本(.iss)本质是类 Pascal 的自定义语法,Sublime 自带的 Pascal 或 INI 语法高亮都只覆盖部分关键字,括号匹配、字符串转义、注释风格全都不对。你打开一个 setup.iss,会发现 Source、DestDir 这些关键字段没颜色,; 后面的注释也不高亮——这不是插件没装,是语法定义压根没对上。
手动关联 .iss 到 Pascal 语法(最简方案)
不用装插件,直接改文件关联就行,适合只想快速看懂结构、不写复杂脚本的人:
- 右键任意
.iss文件 → “Open with” → “Sublime Text”(确保是默认打开方式) - 在 Sublime 中打开该文件 → 点击右下角当前语法名(比如显示
Plain Text)→ 选Pascal - 按
Ctrl+Shift+P打开命令面板 → 输入Set Syntax: Pascal→ 回车 - 再按
Ctrl+Shift+P→ 输入Preferences: Settings – Syntax Specific→ 在弹出的右侧 JSON 中加一行:"extensions": ["iss"]
这样以后所有 .iss 都自动用 Pascal 语法渲染,至少能看清函数调用和基础结构。
用 Inno Setup Syntax Highlighting 插件(推荐给常写安装脚本的人)
官方维护的 Inno Setup Syntax Highlighting 插件(GitHub 上搜这个名字)才是真匹配:它识别 [Files]、[Code] 这些段落标记,高亮 #define 宏、{#MyVar} 预处理变量,还支持 Code 段里的 Pascal 子语法嵌套。
- 用 Package Control 安装插件后,重启 Sublime
- 打开
.iss→ 右下角语法选择里会出现Inno Setup(不是Pascal) - 如果没出现,检查插件是否启用:
Preferences → Package Settings → Inno Setup Syntax Highlighting → Settings,确认extensions包含"iss" - 注意:该插件不支持
.isl(Inno Setup 库文件),如需高亮需额外配置"isl"扩展名
常见坑:高亮有了,但代码补全和跳转还是不行
语法高亮 ≠ 语言服务。Sublime 原生不提供 Inno Setup 的符号索引,所以 Ctrl+Click 点不到 InitializeSetup 函数定义,也没有参数提示。别折腾 LSP 插件——目前没有稳定支持 Inno Setup 的语言服务器。
- 想查函数文档?直接去官网
https://jrsoftware.org/ishelp/搜函数名 - 宏定义太多记不住?在
[Code]段开头加注释块,把常用#define和{#...}列出来 - 如果用了
[Code]段里的 Pascal 代码,建议单独保存为.pas文件用 Delphi IDE 写,再粘回.iss——Sublime 对纯 Pascal 的支持远强于嵌入式片段
真正卡住人的从来不是颜色,而是预处理器展开顺序、路径拼接规则、还有 ExpandConstant 在不同上下文的行为差异。高亮只是帮你少看错一个分号,别的得靠查文档和试。










