真正起作用的是对接lsp或intellisense的官方插件:python开发必须同时安装microsoft官方python插件和pylance,二者共存且禁用pyright等冲突插件;javascript依赖vscode内置ts/js语言服务,无需额外“补全专用”插件。

装什么插件才真正起作用
不是所有“补全”插件都管用,关键看它是否对接了语言服务协议(LSP)或内置 IntelliSense。比如写 Python,Python(Microsoft 官方)和 Pylance 必须同时安装——单装前者补全弱、类型提示几乎为零;写 JavaScript,JavaScript (ES6) code snippets 提供常用语法块,但真正的上下文感知补全靠 VSCode 自带的 TS/JS 语言服务,不需要额外装“补全专用”插件。
-
Python+Pylance:二者共存且禁用Pyright(冲突) -
JavaScript场景下,优先确保文件语言模式是javascript或typescript,而非plaintext - HTML 标签自动闭合用
Auto Close Tag,但必须关掉 VSCode 内置的html.autoClosingTag - AI 类补全(如
CodeMoss或Copilot)需单独配置 server url 和授权码,不依赖语言服务
装完不生效?先查这五件事
插件装完没反应,90% 是卡在这几个环节,而不是插件本身坏了:
- 右下角语言模式是否正确?点开它确认是
python、javascript等,不是Plain Text -
python.defaultInterpreterPath是否设为绝对路径?相对路径(如./venv/bin/python)会导致 Pylance 完全无法索引包 - 是否误启了冲突插件?比如同时启用
Pylance和Pyright,后者会静默接管并降级补全质量 -
editor.quickSuggestions是否关闭?检查 settings.json 中该字段的other值是否为true - 是否在字符串或注释里打字?默认
editor.quickSuggestions的strings和comments是false,不会触发
怎么让 .log 这种快捷补全生效
这不是插件自带功能,得靠自定义代码片段或轻量插件实现。VSCode 原生不识别 .log 这类前缀,必须显式注册触发字符:
- 手动加 snippet:按
Ctrl+Shift+P→ 输入Preferences: Configure User Snippets→ 选javascript.json→ 添加:{ "console.log": { "prefix": ".log", "body": ["console.log($1);"], "description": "console.log()" } } - 若想全局支持(包括 TypeScript),改用
javascriptreact.json或typescript.json - 注意:前缀不能含空格或特殊符号,
.log可用,log.不行;触发后按Tab插入,不是回车 - 更灵活的做法是装
TabNine或CodeMoss,它们能学习你输入习惯,但需额外配置 server 和 token
补全建议总排错位?调这几个设置
补全列表出来但顺序混乱、方法名藏在最后、片段被压到下面——本质是排序策略没对齐你的使用习惯:
-
editor.suggestSelection设为"recentlyUsed"比"first"更符合直觉,它优先显示你最近选过的项 -
editor.snippetSuggestions设为"top"让自定义 snippet 固定置顶,避免被函数名挤下去 -
editor.suggest.localityBonus开启后,当前文件里定义的变量/函数会获得更高权重 - 如果第三方库补全缺失,确认
node_modules没被files.exclude或search.exclude屏蔽,否则语言服务读不到类型定义











