Atom代码高亮需手动安装language-xxx语法插件并正确配置config.cson文件类型映射,否则.vue等文件显示为灰文本;右下角状态栏显示Plain text即grammar未生效;styles.less可即时调整括号与同词高亮样式。

Atom 默认不带任何代码高亮增强能力,必须手动安装对应语言的 grammar 插件,否则打开 .vue、.conf、.proto 等文件全是灰文本——这不是配置问题,是 Atom 根本没加载语法解析器。
language-xxx 插件才是高亮核心
所有“高亮增强”都依赖 language-xxx 类插件(比如 language-vue、language-nginx),它们提供 TextMate scope 作用域,是语法着色、括号匹配、跳转识别的基础。只装 autocomplete-php 或 linter-php 这类功能插件,完全不会让 PHP 代码变彩色。
- Vue 文件必须装
language-vue+atom-ide-vue,缺一不可;只装前者,<script setup>里的 TypeScript 不着色 - Nginx 配置要装
language-nginx(作者 hfang),别搜 “nginx syntax”,老插件已停止维护 - Protobuf 等冷门格式需自建 grammar 包,
scopeName必须设为source.protobuf,fileTypes明确写["proto"] - 右下角状态栏显示
Plain text或text.html.vue就说明 grammar 没生效,补全、跳转、高亮全挂
config.cson 文件后缀映射不能少
Atom 不会自动把 .tsx 当 TypeScript、.env 当 Shell 脚本。即使装了 language-typescript,<script lang="ts"> 里仍是灰字,因为 language-vue 没把 .vue 文件内嵌的 TS 内容委托给 TypeScript 解析器——必须靠 config.cson 手动打通。
- 在
~/.atom/config.cson中添加customFileTypes映射,格式严格为:"source.ts": ["ts", "tsx"]、"source.shell": ["env"] - Vue 场景下还需加:
"source.ts": ["vue"]、"source.css.scss": ["vue"],否则<style lang="scss">变量全白 - CSON 对缩进极其敏感:多一个空格、少一个引号,整个配置静默失效,改完务必重启 Atom
- 新建未保存文件默认是
text.plain,必须先保存为.vue或手动点击状态栏选语言
高亮颜色看不见?不是主题问题,是选择器错了
深色主题下括号高亮、同词高亮常“消失”,不是主题太暗,而是 Atom 的高亮层用了独立 CSS 类,和语法着色不共用变量。直接调 @syntax-color-function 没用。
- 改括号高亮:在
~/.atom/styles.less里加.bracket-matcher .region { background-color: rgba(100, 200, 255, 0.4) !important; } - 改同词高亮:加
.highlight-selected { background-color: rgba(100, 150, 255, 0.2) !important; },alpha 值低于 0.15 在暗色主题下基本不可见 - 别碰
.syntax--punctuation或core.highlight-line,它们和高亮功能无关 - 修改
styles.less后无需重启,保存即生效
真正容易被忽略的是:所有高亮行为都绑定在单个文件标签页内,不跨文件、不扫描未打开的项目文件——它不是搜索工具,只是当前上下文的视觉反馈。文件超过 5000 行时,highlight-selected 会自动禁用,控制台提示 disabled due to large file,这时候再调样式也没用。

















