autocomplete-plus必须启用,否则所有JS补全无效;需在Preferences→Packages中启用它并重载窗口,再安装atom-ternjs提供语义提示,且文件语法须正确识别为JavaScript。

autocomplete-plus 必须先启用,否则所有 JS 补全都无效
Atom 默认禁用 autocomplete-plus,哪怕你装了十几个 JS 插件,只要它没开,Ctrl+Space 就没反应、输 docu 不出 document、点 . 也不弹方法列表——这不是插件坏了,是框架压根没启动。
操作路径:Atom → Preferences → Packages,搜索 autocomplete-plus:
- 若状态为
Disabled,点右侧Enable按钮(变蓝即生效) - 若列表里没有,先点
Install安装,再Enable - 启用后务必执行
Window: Reload(快捷键Ctrl+Alt+R),否则旧 UI 缓存可能让补全静默失效
atom-ternjs 是 JS 智能提示的核心,不是可选而是必需
autocomplete-plus 只负责弹框和匹配已有变量名,它不知道 fetch() 返回 Promise、Array.prototype.map 的回调参数顺序,这些语义级提示必须靠 atom-ternjs 提供。
安装方式(任选其一):
立即学习“Java免费学习笔记(深入)”;
- 图形界面:
Preferences → Install,搜atom-ternjs→ 点Install - 命令行:
apm install atom-ternjs(需提前装好node和git)
注意:atom-ternjs 启动后默认只启用 browser 支持,ES6、jQuery、Node.js 等需手动勾选。项目根目录运行 Packages → Atom Ternjs → Configure project,点 Save & Restart Server 生成 .tern-project 并打开对应选项。
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
文件语法识别错,JS 补全直接归零
Atom 补全严格绑定当前文件的 grammar。右下角显示 Plain Text 或 HTML 却在写 JS?补全必然不工作——连基础语法都没识别对,provider 根本不会加载。
常见触发场景:
- 新建未保存文件:Atom 默认当
Plain Text;保存为.js后右下角才变成JavaScript - 写了
.jsx或.ts却没配 grammar 映射:右下角仍是Plain Text,补全完全失效 - 被其他插件覆盖 grammar:比如装了
language-babel但没正确绑定.jsx到source.js.jsx
修复方法:点右下角语法名 → 从菜单选 JavaScript(或 JavaScript (Babel)、TypeScript 等),或在 config.cson 手动加映射,例如:"source.js.jsx": ["jsx"],缩进必须是两个空格,少一个引号就静默失败。
provider 插件装错或路径不对,JS 补全依然半残
atom-ternjs 是 JS provider,但它不处理路径补全、文件导入建议。如果输 require('./ 不提示文件、import 不列模块,那是缺了 autocomplete-paths;如果 JSX 属性不提示,得确认 language-babel 或 language-javascript-jsx 是否启用。
关键细节:
- Python 补全要
autocomplete-python,不是python-tools;Rust 已弃用autocomplete-rust,必须用ide-rust + rust-analyzer -
autocomplete-python设置里要填对python-executable-path,否则找不到解释器,补全空转 - 所有 autocomplete 插件默认跳过
node_modules和__pycache__,这是由core.excludeVcsIgnoredPaths控制的,不是 bug,别白费劲去“修复”
最常被忽略的一点:装完一堆插件后,一定要确认右下角语法名、autocomplete-plus 状态、provider 是否已安装并启用——三者缺一不可,漏掉任意一个环节,JS 智能提示就只剩最基础的变量名回显。

















