Sublime Text 打开 .shader 文件无语法高亮,需先安装 Package Control,再安装 Unity-Shader 或 ShaderLanguages 插件,并手动设置右下角语法模式为 Unity ShaderLab;若需函数补全和跳转,须在 Unity-Shader 设置中正确配置 Shader_path 指向 Unity 的 CGIncludes 目录。

Sublime Text 打开 .shader 文件没颜色?先装 Package Control
没装包管理器,后面所有插件都装不了——这是 90% 新手卡住的第一步。Sublime 默认不带 Package Control,必须手动安装。
- 按
Ctrl+`(Windows/Linux)或Cmd+`(macOS)打开控制台,粘贴官网最新安装命令(2026 年仍有效):import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d882f09'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler())); by = urllib.request.urlopen('https://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join(ipp, pf), 'wb').write(by) - 回车执行,等待提示 “successfully installed”,重启 Sublime
- 重启后按
Ctrl+Shift+P(Win)或Cmd+Shift+P(Mac),输入Package Control: Install Package能响应,就说明装好了
装哪个插件?别选错:Unity-Shader ≠ ShaderLanguages
搜 “shader” 会出来一堆插件,但真正支持 Unity 完整 ShaderLab 结构(Properties、SubShader、CGPROGRAM、Fallback)的只有两个主流选项,它们定位不同:
-
Unity-Shader(GitHub:petereichinger/Unity3D-Shader):语法高亮 + 基础补全(如_MainTex、tex2D、UNITY_MATRIX_MVP),需手动配置内置函数路径,适合想查定义的开发者 -
ShaderLanguages:轻量级高亮,支持.shader和.cginc,右下角可手动切换为Unity ShaderLab模式,但无补全、无跳转 - ⚠️ 避坑:别装
Unity3D Shader Highlighter and Snippets(已多年未更新,2026 年在 ST4 下常崩溃)
装完插件还是灰白一片?手动指定语法模式
插件装完不会自动生效——Sublime 不会根据文件后缀猜语言,尤其 .shader 不是标准扩展名,必须人工绑定。
- 打开任意
.shader文件 - 看窗口右下角,当前显示可能是
Plain Text或ShaderLab(取决于插件) - 点击右下角文字 → 在弹出菜单中选择:
Unity ShaderLab(Unity-Shader插件) 或ShaderLanguages → Unity ShaderLab(ShaderLanguages插件) - ✅ 成功标志:
Shader、Properties、Pass变蓝,CGPROGRAM/ENDCG变绿,注释变灰
想补全内置函数和跳转定义?必须配 Shader_path
只装插件,tex2D、UNITY_MATRIX_VP 这些不会补全,更没法 F12 跳转——因为 Sublime 不知道 Unity 的 CGIncludes 在哪。
- 按
Preferences → Package Settings → Unity-Shader → Settings – User - 填入你本机 Unity 安装路径下的内置着色器目录,例如:
{ "Shader_path": "C:/Program Files/Unity/Hub/Editor/2022.3.25f1/Editor/Data/CGIncludes" }(Windows)或{ "Shader_path": "/Applications/Unity/Hub/Editor/2022.3.25f1/Editor/Data/CGIncludes" }(macOS) - 路径必须真实存在,且结尾不能带斜杠;如果用的是 Unity Hub,注意版本号要和当前项目一致,否则函数签名可能对不上
- 配完重启 Sublime,再打开
.shader,输入tex就会弹出tex2D、tex2Dlod等候选项
最容易被忽略的一点:Unity-Shader 插件的补全依赖本地 .cginc 文件的完整解析,如果路径指向空目录或旧版 Unity,补全列表会直接消失——不是插件坏了,是它“看不见”函数定义。建议先用资源管理器确认 CGIncludes 目录里有 UnityCG.cginc 和 Lighting.cginc 再重启。










