Sublime中Bash文件无高亮需三步解决:1. 手动绑定语法为Bash;2. 用Package Control安装官方Bash语法包;3. 在Syntax Specific设置中添加sh扩展关联到Packages/Bash/Bash.sublime-syntax。

Sublime 里 Bash 文件没高亮?先确认语法绑定是否生效
默认情况下,Sublime Text 不会自动把 .sh 文件识别为 Bash 语法——它可能被当成 Shell Script(POSIX)或干脆没绑定。最直接的表现是:关键词(if、for、$(...))不着色,变量($PATH、${var})无特殊样式。
- 打开一个
.sh文件 → 右下角状态栏查看当前语法名称(如显示 “Shell-Unix-Generic” 或 “Plain Text”,就说明没绑对) - 点击该名称 → 在弹出菜单中选择
Bash(不是 “Shell Script”)→ 若列表里没有,说明没安装或未启用 Bash 语法包 - 临时生效后,可手动保存绑定:菜单 View → Syntax → Open all with current extension as… → Bash
安装官方 Bash 语法包(推荐用 Package Control)
Sublime 自带的 “Shell Script” 语法只支持 POSIX shell,对 Bash 特有特性(如 [[ ]]、declare、数组 arr=(a b)、扩展通配 **)支持弱甚至不识别。必须换用社区维护的 Bash 语法包。
- 确保已安装
Package Control(没装的话搜 “Install Package Control” 官方文档) -
Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS)→ 输入
Package Control: Install Package→ 回车 → 搜索并安装Bash - 安装后重启 Sublime,再打开
.sh文件,右下角应能选到Bash(注意大小写和空格,不是 “BashScript” 或 “Shell-Bash”)
让 .sh 文件默认用 Bash 语法(避免每次手动切)
光装包不够,得告诉 Sublime “所有 .sh 都走 Bash 语法”。这靠修改用户文件关联配置实现,不是改全局设置。
- 菜单 Preferences → Settings – Syntax Specific(注意是 *Syntax Specific*,不是普通 Settings)
- 此时会打开一个右侧为
ShellScript.sublime-settings的窗口(如果没自动打开,先手动切换一次语法为Bash再进) - 在右侧 JSON 中添加:
{ "extensions": ["sh"], "syntax": "Packages/Bash/Bash.sublime-syntax" } - 保存 → 新建或重开
.sh文件,应自动应用 Bash 高亮
常见踩坑点:shebang、文件名、语法冲突
即使配置完成,仍可能失效,原因往往很具体:
-
#!/bin/sh开头的文件,部分插件或旧版 Sublime 会强制降级为 POSIX 模式 → 改成#!/usr/bin/env bash更可靠 - 文件名含空格或特殊字符(如
my script.sh)可能导致 Sublime 无法正确解析扩展名 → 优先用下划线或短横线命名 - 如果同时装了
ShellScript、BashImproved等多个语法包,它们的.sublime-syntax文件可能冲突 → 删除非官方/过时包,只留Bash(作者:mrmartineau) - Mac 上从 Finder 双击打开的
.sh文件有时不触发语法绑定 → 建议始终通过 Sublime 菜单 File → Open 或拖入窗口打开
真正起作用的是 Packages/Bash/Bash.sublime-syntax 这个路径下的语法定义,而不是名字叫 “bash” 的任何插件。认准作者和路径,比看插件名更靠谱。










