editor.suggest.localitybonus 是控制 vscode 是否优先展示当前文件中出现过的符号的配置项,设为 true 时增强局部相关性排序,但可能压制 ai 插件的高置信度建议;设为 false 则利于 ai 建议置顶,但普通变量补全变泛。

editor.suggest.localityBonus 是什么,为什么它影响建议排序
这个配置项控制 VSCode 是否优先展示“当前文件里出现过的符号”,比如你刚写过 fetchData,再输入 fetch 时,fetchData 就会比 fetch(全局内置)排得更靠前。它不是简单按字母或频率排序,而是加权计算“局部相关性”。
-
editor.suggest.localityBonus设为true(默认),补全更贴你正在写的代码上下文,但可能压低 AI 插件的高置信度建议 - 设为
false,AI 建议(如 Copilot 的整行补全)更容易浮到顶部,但普通变量名补全会变“泛” - 它只对语言服务器返回的候选生效,对纯单词匹配(
editor.wordBasedSuggestions)无效
如何用 editor.suggest.filterOnType 提升关键词匹配精度
这个开关决定 VSCode 是“模糊匹配”还是“前缀强匹配”。开启后,输入 use 不再列出 useState、useEffect、debugger 混排结果,而是只筛出以 use 开头的项,并按语义权重排序。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
- 必须配合
editor.suggestSelection使用:设成recentlyUsedByPrefix才能真正发挥效果 - 在 TypeScript/JavaScript 中效果最明显;Python 因缩进和换行敏感,开启后偶尔漏掉跨行定义的函数
- 如果发现补全列表突然变空,先检查是否误关了
editor.suggest.filterOnType或editor.suggestOnTriggerCharacters
editor.suggest.snippetsPreventQuickSuggestions 导致 AI 建议被屏蔽
这个布尔值控制“代码片段(snippets)是否抢占 AI 补全位置”。设为 true(默认),当你输入 for,VSCode 优先展示 for 循环模板,Copilot 的 for await...of 建议就直接被挤掉——哪怕它更符合你当前函数签名。
- AI 用户应强制设为
false,尤其在 Python/JS 中频繁用if、try等触发词时 - 副作用:自定义 snippet 可能延迟弹出,需多敲一次 Tab 才能唤出
- 该设置对内联建议(inline suggestion,灰色文字)无影响,只作用于下拉列表
权重冲突常见表现及快速诊断法
补全建议“明明该有却看不到”,大概率是多个权重策略打架。比如 editor.suggestSelection: first + editor.suggest.localityBonus: true + tabnine.maxNumberOfResults: 3,三者叠加会让 AI 生成的第 4 条高分建议永远卡在列表外。
- 打开命令面板(
Ctrl+Shift+P),运行Developer: Toggle Developer Tools,切换到 Console 标签页,输入vscode.workspace.getConfiguration().get('editor.suggest')查看实时合并后的配置 - 临时禁用所有非必要插件,只留 Copilot + Pylance,观察补全是否恢复预期顺序
- 关键阈值:Tabnine 的
tabnine.maxNumberOfResults建议不低于5;IntelliCode 的editor.suggestSelection必须避开first










