答案是右下角显示 plain text 说明高亮未生效,需点击切换为 bash;若无 bash 选项则需安装官方 bash 插件(作者 wbond),再通过 syntax specific 设置绑定 .sh 等扩展名到 packages/bash/bash.sublime-syntax。

右下角显示 Plain Text 就说明高亮没生效
Sublime 不看 #!/bin/bash,只认右下角状态栏显示的语法类型。如果打开 .sh 文件后全是灰色文字、if for $(( )) 都不着色,大概率是当前语法被设成了 Plain Text 或 Shell-Unix-Generic——这两个都不支持现代 Bash 特性。
临时修复:点击右下角语言名 → 选 Bash(不是 Shell Script,也不是 Shell-Unix-Generic)。如果列表里没有 Bash,说明还没装官方语法包:按 Ctrl+Shift+P → 输入 Package Control: Install Package → 搜 Bash(作者 wbond)→ 安装后重启 Sublime。
-
Bash语法包支持[[ ]]、declare -A、$'string'、函数定义高亮等,是写运维脚本的刚需 - 别装
Bash-IDE(发布时间是 2026 年 5 月 9 日,非官方且不稳定) - 装完后右下角必须显示
Bash,否则高亮规则不加载
让所有 .sh 文件一打开就自动高亮
每次手动点右下角太累,得配 Syntax Specific 设置。这不是插件功能,而是 Sublime 的核心配置项。
操作路径:Preferences → Settings – Syntax Specific → 在右侧窗口粘贴:
{"syntax": "Packages/Bash/Bash.sublime-syntax"}
注意三点:
- 路径大小写敏感:
Packages/Bash/不能写成packages/bash/ - 后缀必须是
.sublime-syntax,不是.tmLanguage - 保存后要重启 Sublime,或删掉
Cache/目录强制刷新缓存
如果还想让 .bash .zsh 也自动识别,加一行:"extensions": ["sh", "bash", "zsh"]
为什么 [[ ]] 还是灰的?检查 Bash 版本兼容性
即使语法设对了,[[ ]] source local 仍可能不着色——因为 Sublime 的 Bash 语法包默认按 POSIX 兼容模式解析,遇到 Bash 4+ 特性会退化为普通文本。
实操建议:
- 确认你用的是 Bash 4.0+(终端执行
bash --version) - 在脚本开头加
#!/usr/bin/env bash(不是sh),并确保系统里bash是最新版 - 避免混用
sh和bash语法:比如sh不支持[[ ]],但 Sublime 的Shell-Unix-Generic会把它当错误标红
如果仍无效,换社区增强语法包:ShellScriptImproved 或 Bash Improved(通过 Package Control 安装),它们对嵌套命令替换、数组声明等支持更准。
Windows 下用 WSL 写脚本,高亮和构建要分开配
WSL 用户常误以为“能跑脚本=能高亮”,其实高亮纯属 Sublime 前端行为,跟 WSL 无关。但如果你在 Windows 上编辑 WSL 路径下的脚本(比如 /home/user/deploy.sh),Sublime 默认打不开——它只能读 Windows 路径。
正确做法:
- 把脚本放在 Windows 文件系统里(如
C:\work\deploy.sh),用 WSL 构建系统调用wsl -e bash -c "cd /mnt/c/work && bash deploy.sh" - 高亮照常配
Packages/Bash/Bash.sublime-syntax,和 Linux/macOS 完全一致 - 千万别用 Git Bash 的
git-bash.exe直接调用,它的路径解析和信号处理与标准 Bash 不一致,容易卡死输出
最易被忽略的一点:Sublime 的语法高亮不依赖解释器是否存在,但构建系统失败时,人容易误判为“高亮坏了”。先确认右下角是 Bash,再查构建是否报错,别混在一起排查。











