Atom 打开 .sh 文件显示白字是因为未识别为 Shell 脚本,需安装 language-shellscript 插件、重启或重载窗口,并在 config.cson 中配置 fileTypes 映射 "sh": "source.shell"。

为什么 .sh 文件打开全是白字?
Atom 默认不把 .sh 文件当 Shell 脚本处理,状态栏显示 “Plain Text” 就说明语法解析器根本没加载——高亮、缩进、括号匹配全失效。这不是插件没装,是 Atom 压根没识别出这是 Shell 代码。
必须装 language-shellscript(不是 language-bash)
别搜 “bash highlight” 或 “shell syntax”,直接在 Settings → Packages 里搜 language-shellscript(作者 atom-community,非第三方冷门包)。它支持 #!/bin/bash、#!/usr/bin/env sh 等主流 shebang,也兼容 POSIX shell 语法。
- 装完必须重启 Atom 或按
Ctrl+Shift+F5重载窗口 - 打开已有
.sh文件,右下角状态栏应显示 “Shell Script”,不是 “Bash” 或 “Plain Text” - 如果仍显示 “Plain Text”,手动点状态栏 → 选 “Shell Script”;若列表里没有,说明插件没启用或安装失败
config.cson 里补一句后缀映射才真正生效
光装插件不够,Atom 还得知道 “哪些文件名该用这个语法”。编辑 ~/.atom/config.cson,在 core 区块下加:
core:
fileTypes:
"sh": "source.shell"
"bash": "source.shell"
"deploy": "source.shell"
"build": "source.shell"
注意:"source.shell" 是 language-shellscript 注册的 grammar scope 名,不能写成 shell-script 或 bash;缩进必须是两个空格,引号不能少;改完保存,新开文件才生效。
常见失效场景和绕过方法
即使上述都做了,以下情况仍会退回到白字:
- 文件无后缀(如
deploy),且没手动切语法:必须点右下角 → “Shell Script”,或按Ctrl+Shift+L输入shell回车 - 文件路径含
/node_modules/或/vendor/:Atom 默认跳过这些目录的语法识别,属正常行为 - 用了
grammar-selector插件并启用了 “Force grammar”:它会覆盖自动识别,临时禁用该插件测试 - 终端里用
atom --safe打开能高亮,但普通启动不行:说明其他插件(如 vim-mode-plus、tree-sitter)干扰了 grammar 加载
最稳的验证方式:新建文件 → 保存为 test.sh → 看状态栏是否立刻变成 “Shell Script” → 光标停在 if 上,按 Ctrl+Shift+P 执行 Editor: Log Cursor Scope,输出里要有 source.shell。

















