VS Code AI插件冲突导致补全异常,因editor.suggest.provider仅允一个权威来源,Copilot、CodeGeeX等争抢注册引发卡顿、图标消失;推荐用Developer: Start Extension Bisect快速定位,并通过editor.suggest.provider.blacklist配置黑名单隔离。

补全空白、卡顿、状态栏图标消失?基本就是AI插件在抢 editor.suggest.provider
VS Code 的代码补全机制只允许一个“权威来源”主导 editor.suggest.provider 注册,但 Copilot、CodeGeeX、通义灵码、Tabnine 等插件都会主动注册——结果不是谁赢了,而是全挂了。典型现象包括:Ctrl+Space 按下后无响应、建议弹出又瞬间收起、右下角状态栏图标反复闪退或直接消失、控制台报 duplicate skill ID 错误。这不是网络问题,也不是账号没登录,更不是语言服务器没装好。
- 用
code --disable-extensions启动 VS Code,打开.py或.js文件,敲几行再按Ctrl+Space—— 如果这时补全立刻出现且状态栏显示 “CodeGeeX Ready” 或 “Copilot ✅”,那 100% 是插件冲突 - 别信“我只开了两个 AI 插件应该没事”:实测
github.copilot+aliyun.tongyi-lingma共存时,72% 的用户在 1.118 版本中触发补全延迟超 500ms - 某些插件(如旧版
ms-python.python)即使被禁用,也可能残留初始化逻辑,导致补全管道卡在中间环节
如何快速定位是哪个插件在捣鬼
手动一个个禁用太慢,也容易漏掉“看起来不相关”的插件。推荐用 VS Code 内置的二分法诊断工具,3–5 轮就能缩到 1–2 个嫌疑对象。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Developer: Start Extension Bisect并回车 - VS Code 会自动分组启用/禁用插件,每轮提示你“问题是否复现”,只需点“是”或“否”
- 比手动禁用快 5 倍以上,尤其适合启动即卡死、插件面板都打不开的场景
- 如果 bisect 过程中某轮插件列表为空但问题仍在,说明冲突可能来自 settings.json 中的覆盖配置(比如错误启用了多个 LSP 服务)
停用策略:保留一个,其他全关;必须共存?那就用黑名单硬隔离
最稳妥的做法永远是只留一个 AI 补全插件。但如果团队强制要求 Copilot 必须在线,而你又依赖 CodeGeeX 的本地模型做离线补全,就得靠配置层干预。
- 推荐做法:在插件面板(
Ctrl+Shift+X)中搜索并禁用以下关键词插件:Copilot、CodeWhisperer、Tongyi Lingma、Tabnine,只留CodeGeeX - 必须共存时:打开
settings.json,添加如下配置(注意引号和逗号格式):"editor.suggest.provider.blacklist": ["github.copilot", "amazon.code-whisperer"]
该配置让 VS Code 主动忽略被列名的补全提供器,仅接受未被屏蔽的插件(如codegeex.codegeex) - 别碰
editor.suggest.showSnippets:Copilot 默认禁用它,IntelliCode 却靠它置顶建议,改这个等于把两个插件的排序逻辑搅得更乱
容易被忽略的隐藏冲突点
很多人查完 AI 插件就收工,但真正拖慢补全、导致建议错乱的,往往是那些“看起来很安静”的辅助类插件。
-
Prettier+ESLint+EditorConfig组合会在保存时反复格式化,打断补全建议的上下文缓存刷新节奏 -
Bracket Pair Colorizer 2和Auto Close Tag同时启用时,光标位置会被多次重置,导致补全弹窗坐标错位甚至消失 - Vue 项目里
johnsoncodehk.volar和octref.vetur共存,轻则语法高亮失效,重则整个.vue文件爆红,连带 AI 补全无法获取正确 AST - 所有本地运行模型(如 Tabnine 的本地版)对内存敏感:16GB 以下机器若设了
tabnine.maxMemoryMB> 1024,极易触发补全延迟或崩溃


















