彻底关闭 vscode 代码补全弹窗需同步禁用三层机制:设 editor.quicksuggestions 的 other/comments/strings 全为 false;关 editor.suggestontriggercharacters;逐个关闭 copilot 等插件的内联建议。

彻底关闭 VSCode 的代码补全弹窗,不是关掉某个开关就行——它由三层机制叠加驱动:编辑器基础补全、语言服务器(LSP)建议、第三方 AI 插件(如 Copilot、通义灵码)。只动其中一层,弹窗仍会从别的路径钻出来。
关掉 editor.quickSuggestions 是最常漏掉的关键一步
很多人搜“关闭自动补全”后只改了 editor.suggest.enabled 或禁用扩展,结果弹窗照旧。真正控制「输入时是否自动弹出」的是 editor.quickSuggestions,它分三类上下文:
-
"other": false—— 关闭普通代码区(如变量名、函数名)的自动弹出 -
"comments": false—— 关闭注释里的补全(比如写 // 后还弹) -
"strings": false—— 关闭字符串内补全(比如"hel"后弹出"hello")
这三项必须全设为 false,否则任意一项为 true 都会导致弹窗在对应场景下复现。注意:该设置对所有语言生效,且不影响 Ctrl+Space 手动唤出。
禁用 trigger 字符触发(点号、括号等)
即使关了 editor.quickSuggestions,某些语言(如 TypeScript、Python)的 LSP 仍会在输入 .、[、( 时强行拉起补全——因为 editor.suggestOnTriggerCharacters 默认为 true,而它依赖 quickSuggestions 已启用才生效。所以你得先确认前者已关,再显式设:
"editor.suggestOnTriggerCharacters": false
否则你会遇到:输 obj. 时不弹,但输 arr[ 又弹了。这不是 bug,是配置没打穿。
逐个清理第三方补全来源和插件
VSCode 内置补全关完后,弹窗还在?大概率是下面这些在作祟:
- Copilot:右下角
Copilot图标 → 点击 → 关掉Inline Suggestions - 通义灵码:右下角图标 → 关闭
云端模型自动触发 - Trae 插件:点击右下角管理齿轮 → 设置 → 取消勾选
弹出框代码补全 - 其他 AI 插件:统一检查其设置中是否含
autoTrigger、inlineSuggestion、completion类关键词
特别注意:这些插件的开关不走 VSCode 通用设置管道,改 settings.json 无效,必须进插件自己的 UI 关。
别碰 languageServer 和 snippetsPreventQuickSuggestions
有人看到 python.languageServer: "None" 或 editor.suggest.snippetsPreventQuickSuggestions 就想试试,这是高危操作:
- 关掉语言服务器会同时干掉语法高亮、跳转定义、错误波浪线——补全没了,但编辑器也废了一半
-
snippetsPreventQuickSuggestions是旧版残留配置,2026 年已废弃,设了反而可能干扰新逻辑 - 真正要留下的只有诊断能力(错误提示),去掉的只是干扰项(弹窗),二者完全可解耦
复杂点在于:不同语言可能有专属覆盖项(如 typescript.suggest.autoImports),它们不控制弹窗时机,只影响补全内容。别被名字带偏——盯住 quickSuggestions、suggestOnTriggerCharacters、插件开关这三个锚点,就够了。











