VS Code 中 CodeGeeX 与 Tabnine 冲突会导致补全覆盖、延迟或卡死,可通过 Extension Bisect 在3轮内精准定位冲突插件;确认后需禁用其一并重启VSCode,或通过语言配置隔离启用范围,彻底解决需清理残留目录与缓存。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

CodeGeeX 和 Tabnine 同时装在 VSCode 里,补全建议会互相覆盖、响应延迟、甚至光标卡死——这不是你网络慢或电脑旧,而是两个 AI 补全引擎在争抢同一段代码的解析权。
确认是否真由二者冲突引发
按下 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入并执行 Developer: Start Extension Bisect。VS Code 会自动分组启用/禁用插件,每轮只问你“问题是否还在”,点“否”继续,点“是”则切换分组。3 轮内就能把嫌疑锁定到 CodeGeeX 或 Tabnine 其中一个。
⚠️ 这一步比手动开关快得多,尤其当你连扩展面板都打不开时,它能绕过 UI 直接定位问题源头。
如果 bisect 结果指向两者之一,再执行 code --disable-extensions 启动干净环境,新建一个 .py 文件输入 def hello():,观察是否立刻出现补全提示。若此时正常,则 100% 是插件冲突。
停用其中一个插件(推荐优先操作)
打开扩展面板(Ctrl+Shift+X),搜索 CodeGeeX 或 Tabnine,点击右下角齿轮图标 → Disable。
【必须重启 VSCode 才生效】 —— 仅重载窗口不行,后台语言服务器进程仍驻留内存,冲突照旧。
若你主要写 Python 或需要中文代码理解,保留 CodeGeeX;若偏好轻量本地模型、企业内网无网环境,保留 Tabnine Lite。
保留两者但隔离运行场景
方法一:通过文件关联自动切换
打开 settings.json(Ctrl+, → 右上角打开设置 JSON),添加以下配置:
"editor.suggest.showSnippets": false,
"codegeex.enableForLanguages": ["python", "java"],
"tabnine.experimental.languageSupport": {"typescript": true, "javascript": true, "html": false}
这样 CodeGeeX 只在 .py/.java 文件激活,Tabnine 专注 TS/JS,互不越界。
方法二:命令面板手动切换
按 Ctrl+Shift+P,输入 CodeGeeX: Toggle Enable 或 Tabnine: Toggle Enable,即时启停。适合临时调试某段 Python 时禁用 Tabnine,写前端组件时再切回来。
注意:不要同时启用 codegeex.autoTrigger 和 tabnine.autoTrigger,它们都会监听 editor.suggestOnTriggerCharacters,VS Code 无法仲裁谁该先响应。
彻底卸载残留配置
第一步:卸载插件后,删除残留目录
Windows:删掉 %USERPROFILE%\.vscode\extensions\zjy1001.codegeex-* 和 %USERPROFILE%\.vscode\extensions\tabnine.tabnine-vscode-*
macOS/Linux:执行 rm -rf ~/.vscode/extensions/zjy1001.codegeex-* 和 rm -rf ~/.vscode/extensions/tabnine.tabnine-vscode-*
第二步:清空缓存与会话数据
关闭 VSCode,删除 ~/.codegeex/ 和 ~/.tabnine/ 两个文件夹(若存在)。这些目录里存着模型状态、会话日志和 token 缓存,旧数据未清理会导致新安装后仍加载失败。
第三步:重装并单侧启用
重新安装 CodeGeeX 或 Tabnine 中的一个,安装完成后不要立即重启——先打开设置搜索 editor.suggest.providerIds,确认列表中只含一个 AI 插件 ID(如 ["codegeex"] 或 ["tabnine"]),再重启。


















