插件已正确安装需验证两点:一是在Package Control: List Packages中确认存在nginx-sublime-syntax等可用包;二是进入Browse Packages检查对应.sublime-syntax或.tmLanguage文件是否存在,空文件夹说明安装不完整。

确认插件已正确安装并可用
右下角显示 Plain Text 不代表插件没装好,只是 Sublime 还没把文件和语法关联上。验证是否真装对了,得看两件事:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Package Control: List Packages,确认列表里有nginx-sublime-syntax(首选)、nginx-conf或小写nginx(作者 bradleyg)之一 - 进
Preferences → Browse Packages…,打开对应文件夹,检查是否存在:nginx-sublime-syntax.sublime-syntax(前者)或nginx-conf.tmLanguage(后者)
如果只有空文件夹、没这些文件,说明安装不完整——重装或手动补全更可靠。别选 sublimenginx 或带 Syntax Highlighter 后缀的包,它们基本停更,if ($arg_foo) { } 里的变量常不染色。
用 file_name_patterns 精准匹配 Nginx 配置路径
全局绑 "extensions": ["conf"] 看似省事,实则会让 redis.conf、logrotate.conf、apt.conf 全部错乱着色——timeout 在 Redis 是整数,在 Nginx 里可能是带单位字符串,颜色错位反而干扰判断。
真正该配的是路径级规则:打开一个真实 Nginx 配置文件(比如 /etc/nginx/nginx.conf),确保它已临时高亮过,再进 Preferences → Settings – Syntax Specific,在右侧粘贴:
{
"syntax": "Packages/nginx-sublime-syntax/nginx-sublime-syntax.sublime-syntax",
"file_name_patterns": [
"/etc/nginx/.*",
"/usr/local/etc/nginx/.*",
"nginx\.conf",
"sites-.*\.conf",
"conf\.d/.*\.conf"
]
}
注意:file_name_patterns 是正则,优先级高于 extensions;点号必须转义成 .,否则 .conf 会被当成任意字符匹配;Windows 下路径必须用正斜杠 / 或双反斜杠 \,单反斜杠会直接崩掉高亮。
为什么 server_name ~^www\.(.+)$ 里 ~^ 还是灰色
这不是插件 bug,是 Sublime 语法高亮的能力边界:.sublime-syntax 文件只做静态词法分析,不解析上下文语义。
-
server、location、proxy_pass这类关键字能着色,因为它们是固定 token -
~^、=、~*在location后面不会单独高亮,会被当作字符串一部分处理 -
$arg_foo在if块里可能有基础高亮,但在map块里基本不识别——语法定义没覆盖该嵌套层级
别依赖颜色判断正则或变量写法对不对,nginx -t 才是唯一可信验证方式。颜色只是辅助,不是校验器。
Windows 用户特别注意路径写法
在 root 或 alias 指令里写 C:\www\static 是安全的,但写成 C:wwwstatic 会导致插件把 w 当转义序列处理,后续所有高亮全乱——这是 Windows 用户最常踩的坑。
所有路径模式(包括 file_name_patterns 和配置文件里的实际路径)都必须用正斜杠 / 或双反斜杠 \\。哪怕你本地 Nginx 配置里 root C:/www/static 能跑通,Sublime 插件也只认这种写法才不崩溃。


















