autocomplete-plus被禁用或冲突导致补全消失,需确认其为蓝色enabled状态、禁用autocomplete-atom-api等冲突插件、windows用户须完全退出重启、检查右下角grammar是否正确(如javascript而非plain text)、恢复provider默认设置并清理keymap/init.coffee中干扰脚本。

autocomplete-plus 被禁用或冲突导致补全消失
补全“突然没了”,大概率是 autocomplete-plus 被手动禁用,或者被其他插件(比如 autocomplete-atom-api、旧版 ternjs)劫持了补全入口。控制台常报 Uncaught TypeError: Cannot read property 'getSuggestions' of undefined —— 这不是 Atom 崩了,是 provider 链断了。
操作步骤:
- 打开 Settings → Packages,搜索
autocomplete-plus,确认右侧按钮是蓝色 Enabled;如果是灰色 Install 或 Disabled,点它启用 - 搜
autocomplete-atom-api、ternjs(非atom-ternjs)、language-babel,全部 Disable - Windows 用户必须 完全退出 Atom 再重启(只重载窗口
Ctrl+Alt+R不生效)
语言识别错乱让 provider 根本不启动
补全不是按文件后缀判断的,而是靠右下角显示的 grammar 名。哪怕你写的是 main.js,如果状态栏显示 Plain Text,autocomplete-javascript 就不会加载,补全必然空白。
常见触发场景:
- 新建未保存文件 → 默认 grammar 是
Plain Text;先保存为.js或.py,再点右下角切换语法 - 粘贴代码进临时 tab → 点右下角文字,从菜单选
JavaScript(注意不是JavaScript (JSX),后者 provider 兼容性差) - Python 文件显示
Python (Jedi)→ 这是旧插件残留,应切为纯Python
provider 设置被改乱,模糊匹配/自动弹出失效
autocomplete-plus 本身没有“模糊开关”,所有匹配逻辑由语言 provider 控制。比如输 log 补不出 console.log,问题不在 autocomplete-plus,而在 atom-ternjs 没开 fuzzy 或项目缺 .tern-project。
恢复默认的关键动作:
- 进 Settings → Packages → atom-ternjs → Settings,勾选
Use Fuzzy Matching;再执行 Configure project → Save & Restart Server 生成.tern-project - 进 Settings → Packages → autocomplete-plus → Settings,关掉
Show Suggestions On Keystroke(避免误弹),但保留Enable Auto Completion(这是触发基础) - 检查
Minimum Word Length是否被调成 4 —— 设太高会漏掉if、for等关键词,建议保持默认 2
自定义 keymap 或 init.coffee 干扰补全流程
很多人在 ~/.atom/keymap.cson 或 init.coffee 里加过补全绑定,比如强行把 tab 绑定到 autocomplete-plus:confirm。这类脚本一旦出错,会阻塞整个补全事件循环,表现为:光标卡住、按 Ctrl+Space 无反应、输入延迟明显。
快速恢复方法:
- 打开
~/.atom/keymap.cson,删掉所有含autocomplete-plus、suggestion、confirm的行 - 打开
~/.atom/init.coffee,删掉所有监听text-editor:confirm或onDidInsertText的自定义逻辑 - 重启 Atom —— 不是重载,是彻底退出再打开
真正难复位的不是配置项,是那些没被记录在设置页里的 provider 状态。比如 python-language-server 连接异常、atom-ternjs 后台服务卡死,它们不会在 UI 显示错误,但会让补全列表永远空着——遇到这种情况,别硬调,直接删 ~/.atom/packages/atom-ternjs 重装更省时间。











