关键在设置editor.suggestselection为recentlyusedbyprefix,并关闭editor.suggest.snippetspreventquicksuggestions以提升ai建议优先级,同时开启editor.suggest.showmethods等底层开关确保python等语言方法补全可见。

补全建议总排在后面?关键在 editor.suggestSelection
VSCode 默认把补全建议按“历史使用频率”或“字母顺序”排,AI 插件(如 Copilot、Tabnine)生成的高相关项常被压到列表底部。这不是插件没生效,而是排序策略没对齐你的输入习惯。
最直接有效的改法是设 editor.suggestSelection 为 recentlyUsedByPrefix:它会优先把和当前输入前缀匹配度高的项顶到前面,比如输 getU,getUserInfo 就比 getById 更可能排第一。
-
recentlyUsedByPrefix:推荐首选,兼顾上下文与历史,适合大多数场景 -
first:永远选第一个——但 AI 建议未必在第一位,容易误触 -
recentlyUsed:纯按历史频次,前缀不匹配时反而更不准
别在设置界面点选,直接写进 settings.json,避免 UI 同步延迟:
{ "editor.suggestSelection": "recentlyUsedByPrefix" }
为什么 AI 建议总被普通变量名挤下去?检查 editor.suggest.snippetsPreventQuickSuggestions
代码片段(snippets)默认会“抢占”补全入口——尤其当你装了大量 snippets 插件时,console.log 这类高频片段一出现,Copilot 的整行补全就直接沉底了。
关掉这个开关才能让 AI 建议公平入场:
{ "editor.suggest.snippetsPreventQuickSuggestions": false }
注意:这个配置只影响“是否允许 snippets 和 AI 建议混排”,不是禁用 snippets。如果你仍想让片段优先(比如写 HTML 时),可以按语言覆盖:
{ "[javascript]": { "editor.suggest.snippetsPreventQuickSuggestions": false }, "[html]": { "editor.suggest.snippetsPreventQuickSuggestions": true } }
Python 补全里 pd. 不出方法?editor.suggest.showMethods 必须开
Pylance 能推导类型,但 VSCode 默认隐藏部分建议类别。哪怕 pd.DataFrame 已被正确识别,pd. 后不显示 head()、dropna() 等方法,大概率是底层开关被关了。
确认这几项在 settings.json 中设为 true:
-
editor.suggest.showMethods(方法) -
editor.suggest.showProperties(属性) -
editor.suggest.showFunctions(函数) -
editor.suggest.showVariables(变量)
别信设置界面里的模糊开关——有些 UI 选项只控制部分语言,而这些是全局生效的底层开关。漏掉任何一个,对应类型的补全就直接消失。
补全卡顿或响应慢?editor.suggest.localityBonus 和 files.exclude 要配着调
VSCode 补全变慢,往往不是 CPU 或内存问题,而是它在遍历整个工作区找匹配项。尤其项目里有 node_modules、.git 或大型数据文件时,索引一卡,建议就延迟。
两个动作必须一起做:
- 开
editor.suggest.localityBonus:让当前文件内的符号优先展示,减少跨文件扫描 - 在
settings.json里严格配置files.exclude,比如:"files.exclude": { "**/node_modules": true, "**/__pycache__": true, "**/*.log": true }
单独开 localityBonus 效果有限——如果 VSCode 还得先读完 200MB 的日志文件再算权重,建议照样慢。排除规则必须真实生效,不能只靠插件自动识别。
权重调整不是“设个参数就完事”,它依赖语言服务器状态、插件共存关系、甚至文件关联是否准确。右下角语言模式显示 Plain Text 时,所有权重设置都无效——先确保它是 Python 或 TypeScript,再调参数。











