sublime打开.shader文件没颜色,须先安装package control插件管理器,再安装unity-shader插件并手动关联语法;补全功能需配置shader_path指向unity的cgincludes目录。

Sublime 打开 .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 输入 Package Control: Install Package 能响应,就说明装好了。
装哪个插件才能高亮 + 补全 Unity Shader?
别装错名字——Unity-Shader(作者 petereichinger)是目前唯一同时支持语法高亮和基础属性/函数补全的插件。其他如 ShaderLanguages 或 Unity3D Shader Highlighter 只能高亮,不提供补全。
安装方式:
- 通过
Package Control: Install Package搜索并安装Unity-Shader - 安装后重启 Sublime
- 打开任意
.shader文件,右下角点击当前语法 →Open all with current extension as→ 选择Unity Shader
注意:Unity-Shader 插件默认不会自动关联 .shader 后缀,这一步必须手动做,否则永远不生效。
为什么写了 _Color 还是没补全?得配 Shader_path
补全功能依赖 Unity 官方 CG/HLSL 头文件(比如 UnityCG.cginc、Lighting.cginc),插件需要知道它们在哪。否则只补 Properties 块里的变量名,不补 CGPROGRAM 里的函数(如 UnityObjectToClipPos、TRANSFORM_TEX)。
配置方法:
- 菜单栏 →
Preferences → Package Settings → Unity-Shader → Settings – User - 填入你本地 Unity 安装目录下的
CGIncludes路径,例如:"Shader_path": "C:/Program Files/Unity/Hub/Editor/2023.2.0f1/Editor/Data/CGIncludes" - Windows 路径用正斜杠
/或双反斜杠\,别用单反斜杠(会报错)
改完保存,重新打开 .shader 文件,CGPROGRAM 块内输入 Uni 就该弹出 UnityObjectToClipPos 等建议了。
双击 Unity 里 .shader 文件直接跳转 Sublime?要设环境变量
Unity 默认用 MonoDevelop / VS / VS Code 打开着色器,想点一下就进 Sublime,得加个编辑器钩子。
步骤:
- 在 Unity 项目
Assets/Editor/下新建ShaderEditor.cs - 代码里读取系统环境变量
SublimeText_Path,指向你本地的sublime_text.exe或subl(macOS) - Windows 示例:
setx SublimeText_Path "C:Program FilesSublime Text" - macOS 示例:
echo 'export SublimeText_Path="/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"' >> ~/.zshrc && source ~/.zshrc
重启 Unity,双击 .shader 文件就能直接唤起 Sublime 并定位到对应行——但注意:这个跳转不传行号,OnOpenAssetAttribute 的 line 参数在 Unity 2021+ 已被弃用,别指望它准确定位到出错行。
最常被忽略的一点:插件补全只对 CGPROGRAM 块内有效,Properties 和 SubShader 块里写错括号或漏掉 },Sublime 不报错,但 Unity 编译时直接挂,且错误提示行号经常偏移。务必养成每写一对花括号就立刻敲回车缩进的习惯。











