ctrl+space没反应主因是系统或输入法劫持:windows中被中文输入法默认占用,macos中cmd+space被spotlight占用;需先禁用系统级绑定,再确认vscode中editor.action.triggersuggest正确绑定。

Ctrl+Space 按了没反应?先查系统和输入法抢键
VSCode 的手动补全命令 editor.action.triggerSuggest 默认绑定在 Ctrl+Space(Windows/Linux)或 Cmd+Shift+Space(macOS),不是因为设置没开,而是系统或输入法早把这组快捷键占了。
- Windows:中文输入法默认用
Ctrl+Space切换中英文——进「设置 → 时间和语言 → 语言 → 中文 → 选项 → 键盘 → 微软拼音 → 热键设置」关掉它 - macOS:
Cmd+Space是 Spotlight,VSCode 已主动退避为Cmd+Shift+Space;若你手动改回Cmd+Space,必须先在「系统设置 → 键盘 → 快捷键 → Spotlight」里禁用 - 按
Ctrl+K Ctrl+S打开快捷键面板,搜triggerSuggest,看右边是否显示“冲突”或绑定为空;右键该条目 → “将键绑定重置为默认值”
点号(.)能自动弹,但输 _ 或 = 就不弹?这不是配置问题
VSCode 不会在 _、=、数字或中文后自动触发建议,这是硬编码限制,不是你 settings.json 没写对。语言服务器(如 TypeScript、Pylance)自己声明哪些字符算触发符,editor.suggestOnTriggerCharacters 只是开关,不控制具体字符列表。
- TypeScript 默认只认
.、:、[、"等;_明确被排除,加进配置也无效 - 想让
_后出建议?Rust 扩展可能支持,但 JS/Python/Go 官方扩展都不处理 - 可靠做法:保持
editor.suggestOnTriggerCharacters为true,需要时直接按Ctrl+Space唤出
Tab 键不采纳补全?检查 editor.tabCompletion 类型
Tab 键能否插入当前高亮建议项,取决于 editor.tabCompletion 的值——它必须是字符串 "on",不是布尔值 true,否则 Tab 永远只缩进。
- 设为
"on"→ 建议框已展开时,Tab 插入高亮项;没框就先按Ctrl+Space唤出再 Tab - 它和
editor.acceptSuggestionOnEnter无关:后者管 Enter,前者只管 Tab - 某些 Snippet 插件(如 Auto Rename Tag)会劫持 Tab 行为;若失效,可临时禁用插件验证
补全框弹出来了,但内容只有变量名、没参数和类型?LSP 没起来
能唤出建议框 ≠ 补全质量合格。右下角状态栏显示 Plain Text 或空白,或者 Python 文件没启用 Pylance,都会导致提示只剩基础词典。
- 先看右下角 language mode:不是
Python、TypeScript等具体语言名,补全就是摆设;按Ctrl+Shift+P输入Change Language Mode手动切 - Python 必须装
ms-python.python,且python.languageServer设为"Pylance"(不是"Jedi");输pathlib.Path().看是否列出完整方法 - JS/TS 项目缺
jsconfig.json或tsconfig.json,跨文件补全、路径别名、第三方库类型全部失效;最简配置至少含{"compilerOptions": {"module": "nodenext", "target": "es2020"}}
真正卡住人的从来不是快捷键记不住,而是补全框弹出来之后,里面空空如也——那说明语言服务器压根没加载,或者你正在编辑的文件根本没被识别成代码。











