editor.quickSuggestions 通过分项配置控制补全触发场景:默认 { "other": true, "comments": false, "strings": false } 仅在普通代码区自动弹窗;可按需开启 strings(如CSS单位补全)或 comments(如JSDoc标签),避免误触干扰。

怎么用 editor.quickSuggestions 控制补全触发场景
补全弹窗在注释里、字符串里频繁出现,根本不是你需要的上下文——这时候不能关掉整个补全,而是得精准控制它在哪生效。editor.quickSuggestions 就是干这个的,默认值是 {"other":true,"comments":false,"strings":false},意思是只在普通代码区(other)自动弹建议,注释和字符串里不弹。
如果你写 CSS 时希望属性值里也能补全单位(比如输入 10p 就提示 px、rem),可以打开字符串补全:"strings": true;但要注意,这会让所有字符串字面量里都触发补全,可能干扰 JSON 或模板字符串中的纯文本输入。
- 改完后不用重启,实时生效
-
comments设为true仅在极少数场景有用,比如写 JSDoc 时想补全标签(@param、@returns),但多数时候会干扰阅读 - 如果项目里大量使用带表达式的模板(如 Vue 的
{{ }}或 React 的{}),建议保持strings关闭,避免误触
editor.wordBasedSuggestions 为什么会让补全变“乱”
这个开关默认是 true,它会让 VSCode 在当前文件里找相似单词来补全,比如你写过 userName,再输 user 就可能建议它。听起来好,但实际容易污染建议列表:补全里混进一堆无关变量名、拼错的旧字段、甚至注释里的词。
尤其在大型项目或多人协作中,不同人命名风格不一,wordBasedSuggestions 常把冷门变量顶到前列,压掉真正该出现的 API 或类型成员。
- 推荐设为
false,把补全决策权交给语言服务(比如 Pylance、TypeScript Server) - 关闭后,
console.还是能精准列出log、error,但不会把你上个月写的usreName错别字也塞进来 - 它不影响代码片段(snippets)或路径补全(比如 import 路径),只管“单词级”建议
CSS 补全失效?重点看 css.completion.triggerPropertyValueCompletion
CSS 属性值补全(比如 display: 后提示 flex、grid)不是默认全开的。很多用户以为装了 CSS 插件就万事大吉,结果输完冒号光标停那儿,啥也不出——问题大概率出在这个开关上。
css.completion.triggerPropertyValueCompletion 控制是否在属性值位置主动拉取合法值建议。设为 true 才会根据属性名动态加载对应值域(position 下推 absolute、relative;transform 下推 translateX() 等)。
- 若同时用 Sass/Less,还要确认插件支持对应语法(官方 CSS 插件对预处理器支持有限)
- 搭配
css.showCompletionsWithAllValueContexts=true,能覆盖更多实验性值(如contain: paint) - 这个设置只影响 CSS 文件,对
.vue或.jsx里的 style block 无效,需靠对应语言插件(如 Volar、ESLint)接管
Python 补全卡顿或漏成员?检查 python.defaultInterpreterPath 和 pylance 状态
Python 补全不是 VSCode 自己猜的,它依赖 Pylance 解析你当前解释器下的包结构和类型信息。如果补全不全(比如 requests.get(). 没列出 json())、或者响应慢,先看两件事:
- 确认
python.defaultInterpreterPath指向的是你实际使用的 Python 环境(比如 venv 或 conda env),而不是系统 Python —— 否则 Pylance 根本看不到你pip install的包 - 打开命令面板(
Ctrl+Shift+P),运行Python: Show Language Server Output,看有没有报错(常见如ImportError或Failed to resolve module) - 如果用了 Poetry 或 pipenv,确保已通过
Python: Select Interpreter正确激活对应环境,Pylance 不会自动扫描Poetry.lock
补全范围本质上由你当前环境的可导入模块决定,不是配置项能硬扩的——装了 numpy 才有 np. 补全,没装就是空白。


















