Sublime需安装PostgreSQL Syntax插件并手动将.sql文件语法设为PostgreSQL或PLpgSQL,才能正确高亮jsonb_extract_path、DECLARE、RAISE NOTICE等专属关键字和函数体,仅靠默认SQL语法无法识别PostgreSQL方言。

Sublime 默认不识别 PostgreSQL 专属语法(比如 jsonb_extract_path、$func$ 块、双引号标识符),更不会高亮 PL/pgSQL 函数体里的 DECLARE 或 RAISE NOTICE。光靠内置 SQL 语法,写 PostgreSQL 脚本时关键词灰扑扑、字符串和变量混在一起,容易看错。
怎么让 .sql 文件正确高亮 PostgreSQL 关键字
根本问题不是“没装插件”,而是 Sublime 没把文件当 PostgreSQL 语境处理——它默认只认通用 source.sql,不区分方言。
- 打开一个
.sql文件,右下角点击当前语法名(如 “SQL”)→ 选 PostgreSQL(注意不是 “SQL (PostgreSQL)” 或 “PLpgSQL” 的模糊选项) - 若列表里没有
PostgreSQL,说明没装对应语法包:用Ctrl+Shift+P→Install Package→ 搜PostgreSQL Syntax安装(比SQL插件更精准) - 设为默认:切好语法后,菜单
View → Syntax → Open all with current extension as… → PostgreSQL,这样所有.sql文件一打开就是 PG 风格高亮 - 对
.pgsql或.pksql这类自定义后缀,同样右下角点语法名 →Open all with current extension as…绑定过去
PL/pgSQL 函数体不着色?要单独激活语法
PostgreSQL 函数体(BEGIN ... END 块内)含变量声明、异常处理等,普通 SQL 语法完全不识别。必须显式告诉 Sublime:“这段是 PL/pgSQL”。
- 函数脚本保存为
.sql后,右下角点语法名 → 选PLpgSQL(PostgreSQL Syntax插件安装后才会出现) - 若函数写在独立文件中(如
my_func.sql),建议直接改后缀为.pgsql,再绑定一次语法,避免每次手动切 -
DECLARE、RETURN QUERY、RAISE等会立刻变色;但注意:$$或$func$引用块内的 SQL 不会二次高亮——Sublime 不做嵌套解析
为什么用了插件还是高亮错乱?检查这三处
常见现象:注释变成绿色但关键字没色、双引号字段名和字符串同色、->> 操作符被截断着色。这不是插件坏了,是语法作用域冲突或主题适配问题。
- 确认没被其他插件劫持:比如
SQLTools有时会强制把 Python 文件里的 SQL 字符串块设为source.sql,反而干扰主文件——在Preferences → Package Settings → SQLTools → Settings里关掉"auto_set_syntax" - 主题是否支持:默认
Monokai对 PostgreSQL 特有符号支持弱;换Material Theme或Dracula,再进Preferences → Color Scheme选带 “SQL” 后缀的变体 - 大小写敏感:PostgreSQL 默认关键字小写,但有些语法包把
SELECT和select当不同 token 处理。若发现大写关键字不着色,检查插件设置里是否有"case_sensitive": false开关(PostgreSQL Syntax默认已关)
真正麻烦的不是配置,是当你写完一个带 jsonb_path_query 和嵌套 CTE 的函数,高亮全绿却漏掉一个 ; 在 END 前——这种错误语法高亮永远抓不到,得靠 psql -c "CREATE OR REPLACE FUNCTION..." 实时验证。

















